什么是known_hosts文件

A通过ssh首次连贯到B,B会将公钥1(host key)传递给A,A将公钥1存入known_hosts文件中,当前A再连贯B时,B仍然会传递给A一个公钥2,OpenSSH会核查公钥,通过比照公钥1与公钥2 是否雷同来进行简略的验证,如果公钥不同,OpenSSH会收回正告, 防止你受到DNS Hijack之类的攻ji。。

关上known_hosts文件

vi ~/.ssh/known_hosts 或 vi /root/.ssh/known_hosts
host文件内容格局:ip 公钥

理解更多ssh known_host

Host key verification failed

三、A通过ssh登陆B时提醒 Host key verification failed
理解更多how to fix Host key verification failed

起因:A的known_hosts文件中记录的B的公钥1 与 连贯时B传过来的公钥2不匹配

解决办法:

办法一:删除A的known_hosts文件中记录的B的公钥(手动进行,不适用于自动化部署情景)
有两只办法删除

  1. 通过vi 找到这个对应的ip或者host的host key 而后删除
  2. 通过ssh-keygen -r hostname 删除

办法二:批改配置文件,在ssh登陆时不通过known_hosts文件进行验证(安全性有所升高),
也是有两种办法:

  1. 编辑对应host的ssh配置文件
    vi ~/.ssh/config //编辑配置文件
    增加以下两行代码:
    StrictHostKeyChecking no
  2. 在ssh登录时利用 -i StrictHostKeyChecking=no 这样就不会查看host key。

如何解决fix too many authentication failures
如何解决remote host identification has changed