如何测试自己集群是否设置了免密钥,如果需要密码,说明没有。代码如下:
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
完毕,这里我只主节点进行设置了。



