问题
在Linux server上执行ssh命令时,遇到下面的错误提示:
Host key verification failed
主机验证是OpenSSH的主要功能之一。该命令检查以确保你正在连接到你认为要连接的主机。当输入yes时,客户端会将服务器的公共主机密钥附加到用户的~/ .ssh / known_hosts文件中,并在必要时创建~/ .ssh目录。下次连接到远程服务器时,客户端会将此密钥与服务器提供的密钥进行比较。如果键匹配,则不会询问您是否要继续连接。
解决
我可以确认我现在连接的是受信任的机器,可以做下面的操作,来更正“主机密钥验证失败”错误:
方法1:手动删除旧秘钥
在server中,旧的秘钥存储在~/ .ssh / known_hosts文件中。客户端/源服务器中的每个用户在其主目录中都有其自己的known_hosts,只需删除目标服务器的特定用户文件中的条目即可。
注意:该文件中每一行前面的信息,有可能是host名字,或者ip地址,这样就可以分辨出删除哪一行了。
方法二:使用ssh-keygen命令删除旧密钥
使用该命令的语法:
ssh-keygen -R [主机名|IP地址]
关于该命令的更多用法可以使用man命令来查看。
例子:
ssh-keygen -R 192.168.1.1
# 根据ip地址来删除指定秘钥
ssh-keygen -f "root/.ssh/known_hosts" -R 192.168.1.1
# 根据ip地址来删除指定known_hosts文件中的指定秘钥
验证
删除掉旧秘钥后,可以再次执行ssh命令,一般会提示,如果继续,会将新的秘钥添加到~/.ssh/known_host文件中。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/155812.html