乐趣区

关于linux:remote-host-identification-has-changed

什么是 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

退出移动版