Ubuntu下安装和配置OpenSSH

一、安装OpenSSH Server

1.首先查看是否已经安装过了

$ dpkg --list|grep ssh

     若结果中没有出现openssh-server,则说明没有安装。

2.安装openssh-server

$ sudo apt-get install openssh-server

二、配置OpenSSH

1.修改/etc/ssh/sshd_config

     最好事先备份一下:

$ sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.original

     将root帐户仅限制为控制台访问:

# vi /etc/ssh/sshd_config

     将permitRootLogin "yes" 改为"no"

     还有其它的更改,但我只改了这点而已。

2.启动和停止openssh server命令

     启动:$ sudo /etc/init.d ssh start

     停止:$ sudo /etc/init.d ssh stop

     重启:$ sudo /etc/init.d ssh restart

3.生成公钥和私钥

$ ssh-keygen -t rsa

     回车后会提示输入passphrase(密码短语),这是用来加密私钥的,可以不填直接回车,不过还是建议填一个更好。

     之后会在~/.ssh文件夹中生成id_rsa(私钥)和id_rsa.pub(公钥)两个文件。

4.补充设置

     将公钥添加到验证文件:

     进入.ssh文件夹:

$ cd ~/.ssh   

     这是将id_rsa.pub里的公钥复制到authorized_keys文件中,authorized_keys文件不存在的话会自动新建的:

$ cat id_rsa.pub >> authorized_keys

     将authorized_keys验证文件权限设置为只读:

$ chmod 400 authorized_keys

     或者右键属性修改,自己随意。

三、建立连接

     到这里,Ubuntu上的设置已经基本完成了,因为我自己的计算机是Windows 7,而Ubuntu是放在VM上的,所以就打算在win 7尝试通过SSH连接Ubuntu。以下是一些心得:

1.使用PuTTy

     PuTTy是SSH的一个客户端,可以在其官网下载安装。

2.尝试连接

     首先要知道Ubuntu上的ip:$ ifconfig

     得到ip地址,比如192.168.236.123。这时可以打开PuTTy.exe填入ip,选择好连接类型SSH,再点open应该就会连接成功了。

     此时会弹出两个窗口,其中一个是警告提示,选“是”或“否”都行,随意。然后会询问login as,填上Ubuntu的用户名即可,接着是password(密码),注意这是Ubuntu的登录密码,这时候是不需要passphrase的。

     于是这样就连接成功了,可以“远程 -_#'' ”控制Ubuntu了。

     另外,你会发现PuTTy里面的中文是乱码的,具体解决方法详见PuTTY中文教程

3.使用金钥验证:

     上面的方法虽然可以连接,但似乎传输内容是没有加密的(?这一点我还不知道是不是这样?),还可以设置成使用公/私钥验证。

     要明确的是OpenSSH生成的密钥与PuTTy的密钥格式不一样,所以要将Ubuntu上的id_rsa转换为PuTTy的格式。

     首先将id_rsa复制到Windows中,打开PuTTYgen.exe,点击load选取id_rsa文件,接下来会提示输入passphrase(如果此时出现的是PuTTy Error,有可能是PuTTygen版本太低,到官网下载最新的PuTTygen即可),选择Save private key,会生成一份ppk文件,文件名随意。

     然后打开PuTTy.exe,输入Ubuntu的ip,选择SSH -> Auth -> Private key file for authentication,选取那份ppk文件,再回到Session保存该会话(以后再连接时就不用再重复以上操作了),点Open,之后你会发现PuTTY窗口要你使用passphrase而不是password来建立连接了。

     还有一点需要注意的是,像我这种情况,Ubuntu上使用的虚拟ip不是固定的,有时候建立连接时会提示“Network error: Connection timed out”,就有可能是ip地址已经改变了,所以连接前还要确认一下ip:$ ifconfig。【完】

猜你喜欢

转载自zhlch.iteye.com/blog/1517715