是否可以从 SSH 的 known_hosts 文件中删除特定的主机密钥?

the*_*cer 364 ssh

是否可以从 SSH 的 known_hosts 文件中删除特定的主机密钥?

我通常最终会删除整个known_hosts文件,我这样做没有问题,但出于好奇,是否可以只删除一个条目?

我打开了known_hosts文件,但我很难理解它的内容。

以下是我遇到的消息,这使我提出了这个问题:

Add correct host key in /home/wissen16/.ssh/known_hosts to get rid of this message.
Offending key in /home/wissen16/.ssh/known_hosts:1
RSA host key for foo.com has changed and you have requested strict checking.
Host key verification failed.
Run Code Online (Sandbox Code Playgroud)

Tak*_*kat 586

使用此命令从 known_hosts 中删除条目:

ssh-keygen -R hostname
Run Code Online (Sandbox Code Playgroud)

  • 它也适用于 IP 地址。例如,我的 Web 服务器有一个 DNS 主机快捷方式。为了消除自定义主机名和 IP 地址的密钥之间的冲突,我必须删除两者的条目。所以 ssh-keygen -R xxx.xxx.xxx.xxx。 (25认同)
  • 另外,如果您使用的是非标准 ssh 端口,请使用此格式`ssh-keygen -R [ssh.sssshh.com]:1234` (24认同)
  • 另外,它会自动保留备份(在我的 osx 机器上:`原始内容保留为 /Users/nha/.ssh/known_hosts.old`,假设它与 Ubuntu 相同)。 (6认同)
  • 这个问题有史以来最好的答案。奇迹般有效 (2认同)

Mik*_*ott 35

是的,您只能删除一个键。只需在编辑器中打开它并删除有问题的行。错误消息中冒号后面的数字是行号,因此这是要删除的行 - 在您的示例中为第 1 行。


Bud*_*sey 18

我最近才开始使用主机密钥,但是当我弄乱它们时,通常每行一个密钥,因此备份文件并一次删除一个,直到找到正确的密钥。然后再添加其他的。有点长的路要走,但应该可行。

同样基于该错误,并且不知道是什么,它可能是问题所在文件中的第一个主机密钥,因此使用 vim 打开文件

vim ~/.ssh/known_hosts

并击中

dd

然后保存它。


Mob*_*kil 5

这对我有用。这是尝试添加已知主机时显示屏上显示的默认方法。

ssh-keygen -f "/home/noob/.ssh/known_hosts" -R "172.16.132.132"
Run Code Online (Sandbox Code Playgroud)

只是您必须在此处更改 IP 地址和主机文件路径。