Linux下集群经常要设置ssh无密码登录方式,下面介绍如何设置:
假设 机器A(172.16.10.100) 要登录到 B (172.16.10.200)
1. 在A机下生成公钥/私钥对。
[auser@A ~]$ ssh-keygen -t rsa
按三次回车就行,在A机器$HOME/.ssh下会生成私钥id_rsa和公钥 id_rsa.pub。
2.把A机器的公钥 id_rsa.pub 拷贝到B机器上,这里使用scp
[auser@A ~]$ scp ~/.ssh/id_rsa.pub buser@172.16.10.200:~/.ssh/
还没设置,所以需要密码
3.登录到B机器,把从A机器拷贝的公钥追加到$HOME/.ssh/authorized_keys文件中
[buser@B ~]$ cat ~/.ssh/id_rsa.pub >>~/.ssh/authorized_keys
注意:B机器的$HOME/.ssh/authorized_keys权限为600
4.设置完成后,第一次登入需要yes确认,如果想要去除也可以
只要在A机器上添加~/.ssh/config文件,权限为600,内容如下
StrictHostKeyChecking no
5.如果 ssh 终端连接数过多,会出现failed的情况,需要修改/etc/ssh/sshd_config的配置
MaxStartups 默认10改成1000
LoginGraceTime 默认120改成0
重启SSH服务
/etc/init.d/sshd restart