[原]Linux使用密钥认证登录SSH
在网上类似的文章很多,我这篇主要描述如下几个过程:
1、putty 生成 public key 和 private key
2、将 public key 分发到Linux服务器上面,使putty可以使用密钥连接到Linux
3、将private key 导出成openssh private key格式,并分发给SecureCRT使用
4、将openssh private key分发到其它两台Linux,使他们互相信任
1、putty 生成 public key 和 private key
下载putty,这个不用说了吧。打开 PUTTYGEN.EXE
选好参数,点击 Generate ,然后不断晃动鼠标。
再分别点 Save public key 和 Save private key 将 public key 和 private key 保存到硬盘中。
2、将 public key 分发到Linux服务器上面,使putty可以使用密钥连接到Linux
用notepad打开public key,然后将base64那几行修改成一行,把头和尾巴的注释去掉。
---- BEGIN SSH2 PUBLIC KEY ---- Comment: "nhinc-rsa-key" AAAAB3NzaC1yc2EAAAABJQAAAIEAiCezXwYbY/gVl+B5JiPoEisVddQVrYnRWgiK rxgMBGL0H0ShWkmegyfvPW8OUVEhWLCHseYwzoK2KeIV7nvKGd+N/3VmB7huuYMT CLXJSISrxQb/wUl+/946PhGFZSncHKKbRfbn6gGJiMTZy+OX0seddoZZ8mskVkTL Kpydgd0= ---- END SSH2 PUBLIC KEY ----
修改成这样:
AAAAB3NzaC1yc2EAAAABJQAAAIEAiCezXwYbY/gVl+B5Ji................
然后,把public key传到服务器上面,放在/root/.ssh/目录中,然后执行
cat [public key file name] >> authorized_keys
然后修改 authorized_keys ,在刚刚添加的那段Base64字符串前面加上 ssh-rsa ,记住后面加个空格分开,大致如下:
ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAIEAiCezXwYbY/gVl+B5Ji................
重启一下 sshd 服务
service sshd restart
下一步配置putty使用密钥登陆Linux,先配置登陆名:
在配置private key所在的目录:
当然连接服务期的地址,这些就不说了。
一切设置好之后,就可以连接到Linux了。
3、将private key 导出成openssh private key格式,并分发给SecureCRT使用
再次打开PUTTYGEN.EXE
点击 Load , 将刚才生成private key 文件Load进来。
然后,另存为 openssh private key 。
将public key 和 openssh private key 的名字修改为如下对应格式:
public key : [openssh private key name].pub
private key : [openssh private key name]
在
这个界面中点击 属性
在这个界面中,填入openssh private key的路径,如果上面public key和private key的名字不对应的话,就会报找不到文件。
一切设置妥当后,就可以连到Linux了。
4、将openssh private key分发到其它两台Linux,使他们互相信任
将openssh private key上传到 .ssh 目录中,并改名为 id_rsa ,然后重启 sshd 服务。
两台服务器都要这样做。
一切配置妥当后,两台Linux之间就可以通过密钥认证了。
测试方法如下:
ssh [remotehost] date
如果不用输入密码证明OK啦。