Windows下OPENSSH服务器巧登录(上)
(3) 高级应用
配置SSH客户端的自动登录
在上面介绍的SSH客户端的使用过程中,用户每次登录服务器都需要输入密码,这对于用户来说未免有些麻烦。由于SSH充分使用了密钥机制,那么就可以通过一定的系统配置,而达到一次配置,以后都不用输入密码,方便登录的目的,下面以Windows2000的客户端为例,说明如何对SSH客户端的自动登录进行配置。 使用putty工具套件自带的puttygen工具,来产生公钥/私钥对来实现。
a.生成公钥/私钥对
打开puttygen工具,准备生成公钥/私钥对,SSH 版本以及公钥的公钥如图7所示。
![]() |
| 图7准备生成公钥/私钥对 |
b.单击Generate按钮,则进入公钥/私钥生成界面,用户需要在界面空白处不断地移动鼠标,以保证钥匙生成的随机性能,见图8 。
![]() |
| 图8生成公钥/私钥对过程 |
c.存储公钥/私钥
产生完后,可更改公钥的备注,另外请任意输入自己不易忘记的句子,做为启动私钥的通行码之用,之后将私钥储存在安全的地方,如图9所示。

图9存储公钥/私钥
应用说明:
生成之公钥的算法: SSH 1 协议仅能使用 RSA 做为生成公钥的算法,而 SSH 2 协议能够支持 RSA 以及 DSA 两种算法。PuTTY 的作者强烈建议使用者使用 RSA 来生成公钥,因为 DSA 有一些设计不良的地方,可能会导致是用者的私钥被有心人士窃听,倘若非要使用 DSA 时,也请不要在每台远程伺服机使用同样的公钥。
公钥的长度:长度越长,相对而言,也就更为安全,但对于大部分的情况之下, 1024 bit 已经很足够。
保存私钥: 当储存私钥至本地计算机时,若没有输入通行码 (passphrase) ,则私钥不会再被加密,意指任何人若取得此私钥则对方将听行无阻。若在储存之际,有事先输入自己熟记的一串通行码,则就算私钥被拿走,对方也无法取用其中的内容。请记住你的通行码,它并无法经由其它方式取得它。
关于兼容性的问题:大部分的 SSH 1 client 使用标准定义的私钥, PuTTY 也是依照标准来执行,所以不会有与其它的 SSH client 相冲突。 然而 SSH 2 的私钥并没有一个标准的格式,所以任一套软件生成的公钥无法立刻在其它软件上执行。
d. 完成公钥分发
上传密匙 用自己的帐号登录远程系统,然后执行下面的命令:
cd ~
mkdir .ssh
chmod 700 .ssh
cat id_rsa1.pub > .ssh/authorized_keys
chmod 600 .ssh/authorized_keys
设置Putty 启动Putty,设置好session的各项参数。点击 Browse 按钮,选择 id_rsa1.prv 文件,见图10。
![]() |
| 图10完成公钥分发 |
然后点击Open 按钮就可以登录了。如果上面的操作都没有问题,那这时应该就自动登录了,无需输入密码。 正常情况下会显示如下:
![]() |
| 图11 自动登录过程 |
e.使用SSH 认证通行码的代理程序
每次登陆服务器新开一个putty终端的时候都要输入passphrase实在是很麻烦,不使用passphrase又不是很安全。我们需要借助putty程序组中的pageant.exe工具来解决这个问题。运行pageant.exe程序,该程序在系统托盘中创建一个小图标,在该图标上左键双击弹出Add key界面,从该界面中点选Add Key按钮,或者在托盘中的pageant小图标上单击右键弹出浮动菜单后选择Add Key菜单。见图12 。此时界面上弹出一个文件选择框,选择保存在本地的私有密匙文件,这时弹出消息框提示输入该密匙的passphrase,正确输入后该私匙加入到ageant的管理下。回到前面的putty程序中,运行了pageant并加入了密匙之后,在putty界面的Session下点选相应的Session的Open按钮,就再也不用要求输入passphrase了。而在完成工作后关闭pageant的运行,又可以保证私匙的安全性。
![]() |
| 图12使用SSH 认证通行码的代理程序 |