Ssh

我可以將 SSH known_hosts 設置為忽略特定的主機名嗎?

  • May 29, 2021

我最近使用 Raspbian 系統映像設置了一些無頭 Raspberry Pi 系統。他們預設使用 zeroconf 域名raspberrypi.local。在我更改它之前,我必須使用 SSH 連接到新伺服器,它總是對我咆哮:

> @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
> @      WARNING: POSSIBLE DNS SPOOFING DETECTED!           @
> @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

並且在我打開 known_hosts 文件並刪除上一個條目之前不會連接。然後當它連接時,它會自動添加一個新條目,raspberrypi.local以便下次搞砸。

我理解並欣賞檢查密鑰並自動添加新密鑰的邏輯,但我認為對於這種特定情況它沒有意義。我永遠不會連接到一個名為的伺服器raspberrypi.local,除非它是我剛剛插入的新伺服器,在這種情況下,它永遠不會有一個已知的可信密鑰。

我可以從known_hosts 規範中看到,我可以在地址端設置一個萬用字元(即,從這個範圍內的任何地址接受這個密鑰)但我想要做的是在密鑰端設置一個萬用字元(接受來自這個的任何密鑰特定域名)。或者更好的是,根本不檢查來自該域名的密鑰。

有沒有辦法告訴 known_hosts 忽略(通過而不檢查密鑰)單個特定域名?

在你的 中試試這個ssh_config,這可以防止 ssh 保存密鑰,但僅限於此主機名。

Host raspberrypi.local
 UserKnownHostsFile /dev/null

該手冊還提到StrictHostKeyChecking

如果此標誌設置為“no”或“off”,ssh 將自動將新的主機密鑰添加到使用者已知的主機文件中,並允許與已更改主機密鑰的主機的連接繼續進行,但受到一些限制。

但是我沒有找到有關這些限制的詳細資訊,而且您也不想保存主機密鑰。

引用自:https://serverfault.com/questions/1064989