代码改变世界

多节点ssh免密匙登录

2016-08-22 08:20  DataBases  阅读(726)  评论(0编辑  收藏  举报

1,在所有节点上,使用yourname用户名执行:

ssh-keygen -t dsa -P '' -f /home/yourname/.ssh/id_dsa

2,在node1的/home/yourname/.ssh目录下,执行 :

cat id_dsa.pub > authorized_keys

3,将node1上的authorized_keys拷贝到node2的相同目录下,执行:

scp /home/yourname/.ssh/authorized_keys yourname@node2_IP:/home/yourname/.ssh/

4,将node2的信息加入到authorized_keys:

cat id_dsa.pub >> authorized_keys

5,将node2上的 authorized_keys拷贝到node3上并加入authorized_keys:
scp /home/yourname/.ssh/authorized_keys yourname@node3:/home/yourname/.ssh/
cat id_dsa.pub >> authorized_keys

6,此时node3上的authorized_keys拥有所有机器的id_dsa.pub,把它scp到其他节点上即可:
scp /home/yourname/.ssh/authorized_keys yourname@node1_IP:/home/yourname/.ssh/
scp /home/yourname/.ssh/authorized_keys yourname@node2_IP:/home/yourname/.ssh/
下面的步骤在所有机器上执行
chmod 600 authorized_keys
chmod 700 .ssh。
此时可以双向免密匙访问了。
备注:所有节点的id_dsa.pub 都必须加入到authorized_keys

正常情况下上面几步执行完成后,从node1向node1、node2发起ssh连接,只有在第一次登录时需要输入密码,以后则不需要。

可能遇到的问题:

1.进行ssh登录时,出现:”Agent admitted failure to sign using the key“ .

执行: $ssh-add 强行将私钥 加进来。

2.如果无任何错误提示,可以输密码登录,但就是不能无密码登录,在被连接的主机上(如A向B发起ssh连接,则在B上)执行以下几步:

chmod o-w ~/
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
3.如果执行了第2步,还是不能无密码登录,再试试下面几个

 $ps -Af | grep agent
检查ssh代理是否开启,如果有开启的话,kill掉该代理,然后执行下面,重新打开一个ssh代理,如果没有开启,直接执行下面:
$ssh-agent
不起作用的话,重启一下ssh服务
$sudo service sshd restart
4. 执行ssh-add时提示“Could not open a connection to your authenticationh agent”而失败
执行: ssh-agent bash