集群间多台机器SSH免密码登录(两种方法实现)
SSH为SecureShell,即安全外壳协议。
比如针对三个节点,我们通常需要配置hosts以便后期统一管理:
vim /etc/hosts
添加如下:
这里,我将主节点的域名叫做master,而从节点1为slave1,从节点2为slave2.
注意:修改hosts中,是立即生效的,无需source或者. 。
方法一:
1、生成公钥和私钥
在主节点中,执行:
ssh-****** -trsa
然后,不断的按回车键。
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
2、将公钥复制到其他从机
scp ~/.ssh/authorized_keys [email protected]:~/.ssh/
scp ~/.ssh/authorized_keys [email protected]:~/.ssh/
上面两个步骤,首次需要输入root用户登录slave1的密码,以及root用户登录slave2的密码。
注意:上述的操作过程只是单向的,即此时,ssh [email protected]和ssh [email protected]是不需要密码的。而ssh [email protected]等反向仍然是需要密码的。
方法二:
同理,
1、也要先生成公钥和私钥,输入命令:ssh-****** -t rsa
2、执行ssh-copy-id
ssh-copy-id -i ~/.ssh/id_rsa.pub [email protected]
上面命令的功能ssh-copy-id将pub值写入远程机器的~/.ssh/authorized_key中。