Sshd
如果host_keys相同,為什麼SSH主機密鑰在連接時會有所不同?
有 3 台機器:A(我從那裡連接到 B 和 C)、B 和
C。B 和 C 具有相同的 SSHD 主機密鑰(它們已被複製,因此它們 100% 相同,SSHD 也已重新啟動,相同的 sshd_config 文件)。
在 C 上,known_hosts 文件如下所示:
C:~/.ssh # grep B * C:~/.ssh # grep A * known_hosts:ssh-rsa xxxx...xxxx C:~/.ssh #
當我們嘗試從 C 連接到 A 時,“A”提供了它的 RSA 主機密鑰。
當我們嘗試從 C 連接到 B 時,“B”提供了它的 ECDSA 主機密鑰。
**問:**為什麼?“A”和“B”伺服器應該同時提供 ex. 是否合乎邏輯:他們的 RSA SSHD 主機密鑰?
首次學習主機密鑰時首選 ECDH/ECDSA 密鑰。由於主機 C 已經知道主機 A 的 RSA 密鑰,它繼續使用它。但是由於主機 C 對主機 B 的密鑰一無所知,因此使用了 ECDH/ECDSA。
(當引入 ECDH/ECDSA 時,我參考了5.7 的發行說明)。
我得到的問題: 兩個鍵都需要嗎? 嗯,是。並非所有安裝的 SSH 都支持 ECDSA,因此您需要 RSA。(例如,putty 還沒有做 ECDSA) 如果我只有 ECDSA 會發生什麼? 取決於誰試圖與您聯繫。如果他們支持 ECDSA,那麼一切都會按預期進行。如果他們不這樣做,您將遇到某種失敗。 哪一個更好? 我個人不知道。ECDSA 需要更少的馬力,所以我發現它在舊硬體上更加靈活。而且由於 OpenSSH 比 RSA 更喜歡它,我猜開發人員認為 ECDSA 更好。