[原]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

image

选好参数,点击 Generate ,然后不断晃动鼠标。

image

image

再分别点 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,先配置登陆名:

image

在配置private key所在的目录:

image

当然连接服务期的地址,这些就不说了。

一切设置好之后,就可以连接到Linux了。

 

3、将private key 导出成openssh private key格式,并分发给SecureCRT使用

再次打开PUTTYGEN.EXE

image

点击 Load , 将刚才生成private key 文件Load进来。

image

然后,另存为 openssh private key 。

将public key 和 openssh private key 的名字修改为如下对应格式:

public key  :  [openssh private key name].pub

private key : [openssh private key name]

image

这个界面中点击 属性

image

在这个界面中,填入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啦。

posted @ 2009-05-08 17:59  killkill  阅读(11630)  评论(0编辑  收藏  举报