為什麼 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_hostsand 。~/.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

相關內容