如何修复 ~/.ssh/known_hosts 文件中的违规密钥

举报
Tiamo_T 发表于 2022/02/09 16:04:39 2022/02/09
【摘要】 当您第一次对机器执行 ssh 时(或远程机器中的密钥更改时),系统会提示您说“是”以确认主机的真实性.

当您第一次对机器执行 ssh 时(或远程机器中的密钥更改时),系统会提示您说“是”以确认主机的真实性.

此功能使用 StrictHostKeyChecking ssh 参数控制。默认情况下,StrictHostKeyChecking 设置为 yes。

从安全角度来看,默认设置“StrictHostKeyChecking yes”是保护您的系统免受任何特洛伊木马攻击的最佳选择。如果您不知道自己在做什么,则不应将 StrictHostKeyChecking 设置为 no。

有时最好暂时禁用它。例如,当您第一次连接到许多已知主机时,您可能希望设置禁用此功能(即询问主机密钥是)并让 ssh 自动添加所有主机密钥。稍后您可以启用此功能。

当您为服务器配置了自动无密码登录并且远程主机密钥由于某种原因而不断变化(您知道它为什么会发生变化)时,您可能需要考虑将 StrictHostKeyChecking 设置为 no,直到远程主机密钥不断变化的问题是固定的。

从 ssh 命令行,您可以传递 StrictHostKeyChecking 选项,如下所示。您还可以在 ssh_config 文件中设置此选项

# ssh -o 'StrictHostKeyChecking no' user@host

如果您是第一次登录服务器,它会将 RSA 永久添加到已知主机列表中,而不会提示您

但是,如果有密钥更改(通常如果重新安装操作系统(或 sshd),远程主机密钥会更改),那么您必须删除旧的无效密钥,如下所示。


删除有问题的 ssh 密钥

当远程主机密钥更改时(在您之前使用有效的远程主机密钥连接之后)将显示以下错误。

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@    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
a7:a8:f2:97:94:33:58:b7:9d:bc:e0:a6:6b:f7:0a:29.
Please contact your system administrator.
Add correct host key in /home/ramesh/.ssh/known_hosts to get rid of this message.
Offending key in /home/ramesh/.ssh/known_hosts: 6
Permission denied (publickey,password).

您必须删除密钥才能继续。使用以下命令删除有问题的键。,

# sed -i '6d' ~/.ssh/known_hosts

注意:根据显示的行号更改6d 。

如果您的 sed 没有 -i 选项,请使用 perl 或使用某些编辑器删除有问题的键。

Perl 解决方案:

# perl -pi -e 's/\Q$_// if ($. == 6);' ~/.ssh/known_hosts

注意:将行号从 6 更改为适当的行号。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。