Watch at Ease看見世界,讀懂生活。

科技 · 實用指南

SSH 顯示「no matching host key type found」?啟用舊演算法前先證明協商邊界

錯誤指向伺服器主機金鑰協商,不是登入金鑰。先證明實際端點、指紋與雙方清單,再把舊演算法限於精確主機、有人負責且會到期的例外。

原創技術示意圖:SSH 主機金鑰協商邊界
原創技術示意圖:保存客戶端清單及伺服器 KEXINIT 的主機金鑰提案;交集為空才是此錯誤的證明。 Watch at Ease

錯誤指向伺服器主機金鑰協商,不是登入金鑰。先證明實際端點、指紋與雙方清單,再把舊演算法限於精確主機、有人負責且會到期的例外。

錯誤發生於伺服器身分演算法協商,使用者公鑰驗證尚未開始。 改演算法前記錄別名、HostName、連接埠、跳板與設定來源。 由一次詳細連線保留客戶端與伺服器兩份主機金鑰演算法清單。

先分類再處理驗證金鑰

保留完整錯誤與脫敏 ssh -vvv,確認文字是 host key type/algorithm;若是 KEX、cipher、MAC 或使用者驗證,立即改走其他證據路徑。

先不要更換使用者金鑰、改 authorized_keys、清空 agent 或調整 PubkeyAcceptedAlgorithms。

證明實際目的地與生效設定

對精確別名執行 ssh -G,記錄主機、連接埠、使用者、ProxyJump、known_hosts 與 HostKeyAlgorithms;ssh -vvv 再記錄命中的設定。

先修正別名、Include、DNS、非標準連接埠或跳板造成的偏差,不能把例外套到錯誤端點。

比較雙方主機金鑰提案

保存客戶端清單及伺服器 KEXINIT 的主機金鑰提案;交集為空才是此錯誤的證明。

HostKeyAlgorithms、KexAlgorithms、Ciphers 與 PubkeyAcceptedAlgorithms 是不同階段,不可同時亂改。

獨立驗證端點並理解 RSA 名稱

從資產清單、主控台或已驗證管理員核對預期型別和 SHA256 指紋;ssh-keyscan 只能採集,不能獨立驗證。

RSA 金鑰不必使用 ssh-rsa。RFC 8332 的 rsa-sha2-256/512 可使用 RSA 金鑰與現代簽章。

優先修伺服器;必要時只建精確主機例外

持久修復是升級伺服器或增加 ED25519、ECDSA、RSA-SHA2,再確認新指紋。

已核驗端點可用單一命令追加 +ssh-rsa 測試;若核准,只寫在精確 Host,保留嚴格檢查、負責人與到期日。

原創技術示意圖:舊式 SSH 主機金鑰例外治理
原創技術示意圖:已核驗端點可用單一命令追加 +ssh-rsa 測試;若核准,只寫在精確 Host,保留嚴格檢查、負責人與到期日。 Watch at Ease