写在前面:
如何测试自己集群是否设置了免密钥,如果需要密码,说明没有。代码如下:
ssh ip
思路:
1.生成自己的密钥对
2.将公钥拷贝到对方主机的authoried_keys文件
进入主题:
1.第一次建立连接,需要输入yes
- 在~/ssh/known_hosts文件记录了以前访问地址 ip hostname 的信息
- 在访问地址的时候如果没有记录到known_hosts文件中,就需要输入yes
- 如果以前收录到known_hosts中,直接输入密码即可
2.生成自己的私钥公钥(三台主机都执行)
ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
- 公钥位置:.ssh/id_rsa.pub
- 私钥位置:.ssh/id_rsa
3.将自己的公钥copy到其他主机(将三台机器都存各个的公钥)
ssh-copy-id -i ~/.ssh/id_rsa.pub root@ip
4.互相免密钥完毕。可以测试一下: ssh ip
(注:以上为覆盖,多试几次没关系)
补充
有个小坑,就是集群启动的时候,如果是新建立连接还需要输入yes,那么就会卡到那必须手动输入yes才能进行下一步。
讲解:
上面讲到了,有一个地方记录着 是否新建立的连接 ,路径:./ssh/known_hosts
解决方式:
1.如果我们把所有主机名都存放文件里面,太繁琐了,不适合。
2.绕过验证
修改/etc/ssh/ssh_config文件的配置,以后则不会再出现此问题
最后面添加:
#严格的主机key的检验
StrictHostKeyChecking no
#用户未知的主机,写到null黑洞里去
UserKnownHostsFile /dev/null
做完上述操作,解决了。如何测试呢?如下
echo > known_hosts
ssh ip
完毕,这里我只主节点进行设置了。
本文介绍了如何设置SSH集群以实现免密钥登录,包括生成密钥对、拷贝公钥到其他主机,以及解决首次连接时的确认问题。通过修改SSH配置文件避免新连接时的确认提示,确保集群间互访无需输入密码。

被折叠的 条评论
为什么被折叠?



