首先要知道,远程登录时,进行身份认证的方式有两种:公钥;密码。公钥的方式就是用非对称密码算法,使用公私密钥来进行身份认证。密码的方式就是输入存在于远程电脑上的用户密码从而登录。这两种方式互相独立,使用证书认证过程中涉及到的passphrase和存在于远程电脑上的用户的密码之间没有联系。
下面是在windows上使用putty远程登录免输密码的操作方法。
第一步,生成一对密钥。这得使用putty提供的puttygen工具。打开puttygen,它默认的密钥类型是ssh-2,默认的密钥大小是1024比特,都接受默认值,点击generate按钮。用鼠标在puttygen的空白区域上随意移动(不移动的话进度条就会停下来),完成密钥的生成。
这之后,会显示出生成的public key, key fingerpint, key comment等信息,可以修改key comment以及设置key passphrase,因为我们要免输密码,所以就设置passphrase为空,所谓的免密码,免的就是这里的密码。
第二步,保存这对生成的密钥。puttygen上有相应的按钮,在本例中,把公钥保存为test.pub文件,私钥被保存为test.ppk文件。
第三步:在pageant中加载私钥文件。打开putty附带的pageant,载入刚才生成的test.ppk文件。
第四步:把公钥文件传送到远程开启sshd的电脑上。用传统方式登录到远程电脑上,在本例中我们以root用户登录,进入root的$HOME/.ssh目录下,打开authorized_keys文件,如果没有就新建一个,新增一行内容:ssh-rsa xxxx,其中xxxx是刚才的公钥(第二步中保存的公钥文件中的BEGIN和END之间的那部分)。ssh-rsa表示使用的是rsa算法。这些必须是同一行,不能分成多行。
现在一切就绪,本例中远程电脑IP是192.168.0.4,注意putty中的设置,如下图:
回车就登录了。如果是其他用户,比如jcwkyl,那就在putty的host name中写jcwkyl@192.168.9.4。
请特别注意权限的设置:
chmod 600 $HOME/.ssh/authorized_keys
chmod g-w $HOME $HOME/.ssh/ $HOME/.ssh/authorized_keys
以上方法在redhat 10和cent os5上测试通过。
附:顺便贴一个在搜索这个主题时发现的一个挺好的网站的链接:
http://doc.linuxpk.com/1112.html
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/jcwKyl/archive/2009/09/17/4562599.aspx