SSH 登录时出现如下错误:Host key verification failed

滴滴云技术支持发表于:2018年06月22日 01:00:48更新于:2018年06月22日 01:02:22

问题描述

使用 SSH 登录 Linux 实例时,出现类似如下错误信息,导致无法正常连接。

  • Linux 环境连接报错信息:

    @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
    @    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @
    @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
    IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
    Someone could be eavesdropping on you right now (man-in-the-middle attack)!
    It is also possible that the RSA host key has just been changed.
    The fingerprint for the RSA key sent by the remote host is
    ae:6e:68:4c:97:a6:91:81:11:38:8d:64:ff:92:13:50.
    Please contact your system administrator.
    Add correct host key in /root/.ssh/known_hosts to get rid of this message.
    Offending key in /root/.ssh/known_hosts:70
    RSA host key for x.x.x.x has changed and you have requested strict checking.
    Host key verification failed.

Windows 环境,以常见的 SSH 客户端为例,连接报错:X.X.X.X (端口:XX)的主机密钥与本地主机密钥数据库中保存的不一致。主机密钥已更改或有人试图监听此连接。若无法确定,建议取消此连接。

问题原因

Linux DC2系统重装、账户信息变更等致使其 SSH 公钥变更,造成客户端保存的公钥指纹与服务器端不一致,导致 SSH 认证失败,拒绝登录。

处理办法


客户端是 Windows 环境

如果客户端是 Windows环境,而且使用 SSH 客户端 Putty 连接 DC2,您可以按以下步骤操作:

  1. 启动 Putty。

  2. 在登录页面删除登录会话。

    Delete

  3. 重新使用用户名及密码登录实例,确认保存新的公钥指纹后,即可成功登录。

说明:
您也可以在弹出相关告警信息时,直接单击 接收并保存,让程序自动更新密钥指纹信息,就可以继续正常登录。

客户端是 Linux 环境

如果客户端是 Linux 环境,您可以按以下步骤操作:

  1. 运行以下命令,进入对应账号的 known_hosts 文件:

    vi ~/.ssh/known_hosts
  2. 在返回结果中(如下图所示),找到 DC2 linux IP 对应的条目,按以下步骤将其删除:

    1. 按 i 键进入编辑模式。

    2. 删除 Linux 实例 IP 对应的条目。

    3. 按 :wq 保存并退出文件。
      删除 Linux 实例 IP 对应的条目

  3. 重新连接 DC2 linux,确认保存新的公钥指纹后,即可成功登录。