为什么 SSH 认为我仍然有一个“known_hosts2”文件?

为什么 SSH 认为我仍然有一个“known_hosts2”文件?

当我尝试清理 iMac(macOS Monterey 12.1)上的 SSH 配置和密钥文件时,我尝试使用详细标志 (-v) 进行 SSH。生成的输出包括以下几行:

...
debug1: load_hostkeys: fopen /Users/clint/.ssh/known_hosts2: No such file or directory
debug1: load_hostkeys: fopen /etc/ssh/ssh_known_hosts: No such file or directory
debug1: load_hostkeys: fopen /etc/ssh/ssh_known_hosts2: No such file or directory
...

我知道我曾尝试创建我的known_hosts文件的备份(并将其命名为“known_hosts2”),但我后来将其删除了。

有人知道我怎样才能找出为什么 SSH 仍然引用(并且认为我有)一个名为“known_hosts2”的旧文件?

谢谢!

答案1

openssh 中 ssh 的默认配置已UserKnownHostsFile设置为~/.ssh/known_hosts和。~/.ssh/known_hosts2。配置与 类似,GlobalKnownHostsFile只是它会查找/etc/ssh手册页中显示的这些文件(https://www.man7.org/linux/man-pages/man5/ssh_config.5.html)。因此 openssh ssh 默认检查这 4 个文件,也就是您在 中看到的ssh -v

我不确定 MacOS SSH 的配置(和实现)与 openssh 默认有何不同,但至少在这种情况下它们的行为似乎相同。

答案2

要修复$HOME/.ssh/known_hosts2: No such file or directory,您可以将一个文件添加UserKnownHostsFile到您的 SSH 配置中,例如:

UserKnownHostsFile ~/.ssh/known_hosts

要修复/etc/ssh/ssh_known_hosts: No such file or directory/etc/ssh/ssh_known_hosts2: No such file or directory,您可以将文件添加GlobalKnownHostsFile到 SSH 配置中,例如:

GlobalKnownHostsFile /dev/null

相关内容