“Host key verification failed”或“主机密钥已更改或有人试图监听此连接”报错怎么处理?
问题描述 使用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实例进行过重装系统,账户信息变更等使其SSH公钥变更,造成客户端保存的公钥指纹与服务器端不一致,导致SSH认证失败拒绝登录。
解决方案 阿里云提醒您:
如果您对实例或数据有修改、变更等风险操作,务必注意实例的容灾、容错能力,确保数据安全。 如果您对实例(包括但不限于ECS、RDS)等进行配置与数据修改,建议提前创建快照或开启RDS日志备份等功能。 如果您在阿里云平台授权或者提交过登录账号、密码等安全信息,建议您及时修改。 本文相关Linux配置及说明已在CentOS 6.5 64 位操作系统中进行过测试。其它操作系统版本配置可能有所差异,具体情况请参阅相应操作系统官方文档。
客户端为Windows环境 如果客户端是Windows环境,而且使用SSH客户端Putty连接Windows实例,您可以参考以下步骤进行操作。
启动Putty。 在登录页面,单击 Delete,删除登录会话。 Image2.png 重新使用用户名及密码登录实例,确认保存新的公钥指纹后,即可成功登录。 注:您也可以在弹出相关告警信息时,单击 接收并保存,让程序自动更新密钥指纹信息,即可成功登录实例。
客户端为Linux环境 如果客户端是Linux环境,您可以参考以下步骤进行操作。
执行如下命令,进入对应账号的known_hosts文件。 vi ~/.ssh/known_hosts 按 i 键进入编辑模式。 删除Linux实例IP对应的条目,如下图所示。 TB1yJ8YJVXXXXXqXFXXXXXXXXXX.png 输入:wq保存并退出。 重新连接Linux实例,确认保存新的公钥指纹后,即可成功登录。
更多信息 由于公钥一般较长,采用RSA算法时长达1024位,为了简便起见,通过对其MD5计算,生成一个128位的字符串用于信息对比,称为公钥指纹。
相关文档 若还有问题没解决,请参考如下文档,做进一步的排查分析。
云服务器 ECS Linux SSH 无法登录问题排查指引
适用于 云服务器 ECS
如果您的问题仍未解决,您可以在阿里云社区免费咨询,或提交工单联系阿里云技术支持。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。