在实际的开发和学习中我们会频繁的使用某些远程登录工具,通过网络登录到linux系统中进行程序编写和调试。Putty是比较流行的工具,但是在putty下每次链接到远端linux都要重新输入用户名和密码,就显得有些麻烦了。那么,有没有什么方法来实现双击一下putty图标就能自动免密码链接到远端系统呢?
设置linux ssh服务端
首先,你的linux中要安装好openssh-sever。然后我们要生成ssh秘钥文件。
打开linux命令行终端,输入命令 ssh-keygen。
接下来会有如下图提示,要求输入文件名,这里我直接按回车采用默认参数。
接下来提示输入密码,太啰嗦了,直接回车!忽略密码。
再次确认密码也一样回车。
接下来提示文件已经保存,以及文件的保存路径。
直接用cd 命令直接进入 .ssh
输入 ls 查看一下,两个文件已经在这里了。
用 mv id_rsa.pub authorized_keys 命令将id_rsa.pub文件重命名,openssh-sever 会在我们的家目录下查找 ./ssh/authorized_keys 作为它验证远端链接的公钥。
到此,linux端就设置好了^_^。继续。。。。
设置putty客户端
我们要将id_rsa 这个文件从linux里拷贝出来,方案自选。不过要注意的是,在ubuntu的图形界面下是不显示以 “.”开头的文件的 .ssh目录也自然无法显示。我们可以用cp 命令拷贝到我们的家目录(我的是/home/colin)
之后我们就可以在家目录里看到它了
将文件拷贝到你的windows后我们要进一步设置putty了。
这个id_rsa 是我们要用于自动登录认证的私钥,但是putty还不能直接使用要转换一下。
找到putty源程序的存放目录,找到PUTTYGEN.EXE,如果没有,可以到putty下载页面下载http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html
双击运行程序,点击load按钮。
找到生成好的私钥文件并打开。
点击 Save private key 保存并生成putty能用的私钥。
随便取个名字保存,我这里叫private注意你保存的路径,别一会儿找不到了。
打开putty,在 Connection->SSH->Auth 菜单下点击 Browse 按钮,选择刚才生成的私钥 private.ppk
在 connection->data 下输入你的linux用户名。
在session 的hostname 中输入linux的IP地址;saved sessions 中随便输入一个名字,我这里叫test。然后点击save保存。
好了现在可以测试一下成果!点击open。看看是不是打开了?当然要注意的是你所使用的用户名要在root用户组,否则还是不行。怎么办呢??
用 sudo vi /etc/ssh/sshd_config 打开ssh配置文件
设置
StrictModes no保存并重启ssh服务。
如果再不行就设置 PermitRootLogin no。然后重启ssh服务。如果还不行,那就加入root组吧。。。。。
顺便再文件尾部再加一句 UseDNS no 这样可以提高登录速度。
接下来给putty再创建一个快捷方式并取个新名字
鼠标右键属性
添加在目标后面 添加 –load test 确定保存。以后直接双击这个图标就可以了。