问题描述
当使用SSH连接主机时有可能出现一下情况:
[root@hadoop1 .ssh]# ssh hadoop1
The authenticity of host 'hadoop1 (192.168.137.131)' can't be established.
RSA key fingerprint is 07:07:8e:1c:c0:7e:7f:1f:ca:6a:e6:d3:cb:7f:b7:a1.
Are you sure you want to continue connecting (yes/no)?
Host key verification failed.
当看到”Host key verification failed.”时,我头蒙了,怎么不行了呢!
解决方案
方法1:
[root@hadoop1 ~]#vi /home/hadoop/.ssh/known_hosts
ps:进入此目录,删除的本机相关rsa的信息或者删除这个文件(known_hosts)
方法2:
SSH对主机的public_key的检查等级是根据StrictHostKeyChecking变量来配置的。默认情况下,StrictHostKeyChecking=ask。
简单所下它的三种配置值:
- 1.StrictHostKeyChecking=no
最不安全的级别,当然也没有那么多烦人的提示了,相对安全的内网测试时建议使用。如果连接server的key在本地不存在,那么就自动添加到文件中(默认是known_hosts),并且给出一个警告。 - 2.StrictHostKeyChecking=ask
默认的级别,就是出现刚才的提示了。如果连接和key不匹配,给出提示,并拒绝登录。 - 3.StrictHostKeyChecking=yes
最安全的级别,如果连接与key不匹配,就拒绝连接,不会提示详细信息。
为了方便,选择最低的安全级别。在/etc/ssh/ssh_config中配置:
StrictHostKeyChecking no
UserKnownHostsFile /dev/null
ps:将knownhostfile设为/dev/null,就不保存在known_hosts中了