ssh连接时提示THE AUTHENTICITY OF HOST XX CAN’T BE ESTABLISHED

Posted 奔跑的大白

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ssh连接时提示THE AUTHENTICITY OF HOST XX CAN’T BE ESTABLISHED相关的知识,希望对你有一定的参考价值。

 

ssh链接云主机:

ssh [email protected]

报错:THE AUTHENTICITY OF HOST XX CAN’T BE ESTABLISHED

 

解决办法:

ssh -o StrictHostKeyChecking=no [email protected]

输入密码,链接成功

 

与ssh中Host key verification failed问题一样。

 

网上很多的解决方案是:vi ~/.ssh/known_hosts 删除与想要连接的主机相关的行;或者直接删除known_hosts这个文件。 当然这个方案也是可行的,但并非解决问题的根本办法,因为继续使用,今后还会出现这样的情况,还得再删除。
下面简单讲一下这个问题的原理和比较长久的解决方案。
用OpenSSH的人都知ssh会把你每个你访问过计算机的公钥(public key)都记录在~/.ssh/known_hosts。当下次访问相同计算机时,OpenSSH会核对公钥。如果公钥不同,OpenSSH会发出警告,避免你受到DNS Hijack之类的攻击。
SSH对主机的public_key的检查等级是根据StrictHostKeyChecking变量来配置的。默认情况下,StrictHostKeyChecking=ask。简单所下它的三种配置值:
1.
StrictHostKeyChecking=no  
#最不安全的级别,当然也没有那么多烦人的提示了,相对安全的内网测试时建议使用。如果连接server的key在本地不存在,那么就自动添加到文件中(默认是known_hosts),并且给出一个警告。
2.
StrictHostKeyChecking=ask  #默认的级别,就是出现刚才的提示了。如果连接和key不匹配,给出提示,并拒绝登录。
3.
StrictHostKeyChecking=yes  #最安全的级别,如果连接与key不匹配,就拒绝连接,不会提示详细信息。

对于我来说,在内网的进行的一些测试,为了方便,选择最低的安全级别。在.ssh/config(或者/etc/ssh/ssh_config)中配置:

StrictHostKeyChecking no
UserKnownHostsFile /dev/null

(注:这里为了简便,将knownhostfile设为/dev/null,就不保存在known_hosts中了)

参考:http://smilejay.com/2012/12/ssh-config-host-key-checking/

以上是关于ssh连接时提示THE AUTHENTICITY OF HOST XX CAN’T BE ESTABLISHED的主要内容,如果未能解决你的问题,请参考以下文章

关于 git 本地创建 SSH Key 遇到的一点问题(①file to save the key & ②the authenticity of host...)

The authenticity of host 192.168.0.xxx can't be established

拉取远程仓库到本地错误The authenticity of host 'github.com (13.229.188.59)' can't be established.(示

ssh登录 The authenticity of host 192.168.0.xxx can't be established. 的问题

好记心不如烂笔头,ssh登录 The authenticity of host 192.168.0.xxx can't be established. 的问题

批量分发