SSH 报 Host key verification failed,先别急着绕过它
【摘要】 今早 ssh 连云服务器,第一把就报 Host key verification failed。以前一直能连,密钥没动过,服务器也没重装过。先没动密钥,用 ssh -v 看了一眼。它去找 /root/.ssh/known_hosts,这个文件不存在。后面三个位置也一样,/root/.ssh/known_hosts2 和 /etc/ssh/ 下那两个,全是 No such file。服务器当场...
今早 ssh 连云服务器,第一把就报 Host key verification failed。以前一直能连,密钥没动过,服务器也没重装过。
先没动密钥,用 ssh -v 看了一眼。它去找 /root/.ssh/known_hosts,这个文件不存在。后面三个位置也一样,/root/.ssh/known_hosts2 和 /etc/ssh/ 下那两个,全是 No such file。服务器当场把指纹打出来了,ssh-ed25519,SHA256 开头的一串。
这一步得分清两种情况。服务器真换了,还是本机这边信任记录丢了。分清的办法是比指纹。本机家目录下的 known_hosts 里有同一台服务器的记录,指纹一模一样。服务器没换,丢的是本机这边的信任记录。
处理很简单,让 ssh 去读原来那个 known_hosts 文件。UserKnownHostsFile 指过去,再连就通了。没用 StrictHostKeyChecking=no,也没直接接受一个没见过的指纹。
写下来是因为这个报错很容易走偏。host key 校验是防中间人的最后一道,报错先别绕过。指纹对得上就补信任记录。对不上先别连,去核实服务器是不是真的换了。
还有一个坑。ssh 找 known_hosts 和密钥,看的是系统账号的家目录。shell 里的 HOME 变量指到别处也没用,密钥要写绝对路径。
【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)