为了让之前的脚本简单,所以先让几台服务器之间的登录都免密码。
主机A:192.168.100.100
主机B:192.168.100.101
首先要确定防火墙是关闭的。
在主机A上执行:
cd ~<span style="white-space:pre"> </span>//跳到根目录<span style="white-space:pre"> </span>
cd .ssh<span style="white-space:pre"> </span>//跳到.ssh文件夹
ssh-keygen -t rsa<span style="white-space:pre"> </span>//生成公钥
cp id_rsa.pub authorized_keys <span style="white-space:pre"> </span>//将公钥追加到authorized_keys这个文件中
然后执行:ssh localhost
如果不需要密码登陆,则成功,这样就可以免密码登陆本机了,那么,如何才能无密码登陆主机B呢?
在主机A上的.ssh文件夹下面执行:
scp authorized_keys admin@192.168.100.101:/home/admin/.ssh //把主机A这个文件拷贝到主机B中.ssh文件夹下面
然后在主机B上的.ssh文件夹下面执行:
chmod 600 authorized_keys <span style="white-space:pre"> </span>//修改这个文件的权限
然后,在主机A上就可以免密码登陆主机B了:
ssh admin@192.168.100.101
————————————————————————————————————————————————————————————————————————
我在做这个操作的时候,几台服务器都行,但是就是有一台连接不上,结果查询之后,原来是SELinux的问题,把SELinux关闭了就OK了:
setenforce 0<span style="white-space:pre"> </span>//临时关闭SELinux
最后问题都解决了。