Ssh

SSH 未找到匹配的主機密鑰類型

  • February 8, 2022

我有兩台伺服器,

  • S1:我的機器,Windows 8OpenSSH 8.8p1OpenSSL 1.1.11 2021-08-24,
  • S2:遠端伺服器,LinuxOpen SSH 5.3p1OpenSSL 1.0.1e-fips 2013-02-11。

我試圖調查如何解決的消息是

無法與xxx.xxx.xxx.xxx埠協商xxxxx:找不到匹配的主機密鑰,他們提供 ssh-rsa,ssh-dss

  • S1 和 S2 ssh 使用者密鑰都是RSA-2048(~372 個字元),
  • 預設情況下, S1和S2文件的所有選項**都已 etc/config註釋,
  • S1和S2 ssh 使用者的文件configauthorized_keys文件相同,包括公鑰和別名,
  • S2 是遠端嵌入式 Linux,不受我控制,也無法更新。SSH 無法更新,並且僅限於特定 IP。

問題是,我是否應該將所有密鑰更改為 ECDSA-256 才能解決這個問題?有沒有我在這裡沒有提到的其他配置?

當我添加HostkeyAlgorithms +ssh-rsa幾乎所有地方都建議的選項時,SSH 要求輸入密碼而不是檢查密鑰。

(稍微擴大)

您實際上已經解決了標題中的問題;它HostkeyAlgorithms +ssh-rsa提示輸入密碼,這意味著它接受了主機密鑰。(你甚至可以告訴 8.8 接受ssh-dss——它仍然在實現,儘管 OpenSSH 開發人員強烈反對它。)

現在您身體中的實際問題是使用者身份驗證,因為預設情況下 OpenSSH 8.8 僅將更新、更強大的rsa-sha2-*算法用於 RSA 密鑰,而 5.3 大約比定義這些算法早了 8 年。**添加PubkeyAcceptedAlgorithms +ssh-rsa**到 8.8 使用舊的弱算法 5.3 可以處理。

如果可能的話,對負責您連接的那個古老系統的人發表諷刺評論:-)

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