Ssh
SSH 未找到匹配的主機密鑰類型
我有兩台伺服器,
- S1:我的機器,Windows 8,OpenSSH 8.8p1,OpenSSL 1.1.11 2021-08-24,
- S2:遠端伺服器,Linux,Open SSH 5.3p1,OpenSSL 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 使用者的文件
config
和authorized_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 可以處理。如果可能的話,對負責您連接的那個古老系統的人發表諷刺評論:-)