现有两台机器A与B,A:10.240.210.131 用户为root;B:10.240.210.233 用户为root
要实现在A机器上通过ssh连接到B时不用输入密码。
1.在A机器执行ssh-keygen -t rsa生成一对rsa公私钥,生成的密钥对会存放在~/.ssh目录下。
|
1
|
root@
test
.
ssh
$
ssh
-keygen -t rsa
|
2.在B机器上root的用户目录下创建~/.ssh目录。
|
1
2
|
ssh
root@10.240.210.233
mkdir
-p .
ssh
|
3.将10.240.210.131上用户“root”的公钥拷贝到root@10.240.210.233上,来实现无密码ssh。
|
1
|
$
cat
.
ssh
/id_rsa
.pub |
ssh
aliceB@hostB
'cat >> .ssh/authorized_keys'
|
附注:
上述的创建目录并复制的操作(步骤2与3)也可以通过一个 ssh-copy-id 命令一步完成
|
1
|
root@
test
.
ssh
$
ssh
-copy-
id
-i ~/.
ssh
/id_rsa
.pub root@10.240.210.233
|
疑难解答
-
即使在密钥认证生效后,你可能仍然需要输入SSH密码。如果遇到这种情况,请检查系统日志(如/var/log/secure)以查看是否出现下面的异常。
Authentication refused: bad ownership or modes for file /home/aliceB/.ssh/authorized_keys
在这种情况下,密钥认证的失败是由于~/.ssh/authorized_keys文件的权限或拥有者不正确。一般情况,如果这个文件对除了你之外的所有用户都可读,就会出现这个错误。用下面的方式改变文件的权限以修正错误。
|
1
|
$
chmod
700 ~/.
ssh
/authorized_keys
|
本文转自 xoyabc 51CTO博客,原文链接:http://blog.51cto.com/xoyabc/1652623,如需转载请自行联系原作者