2024年1月30日 星期二

kex error : no match for method server host key algo: server [ssh-rsa,ssh-dss]

 解釋錯誤訊息 “[ERROR] could not connect to ssh://172.16.65.210:22 - kex error : no match for method server host key algo: server [ssh-rsa,ssh-dss], client [ssh-ed25519,ecdsa-sha2-nistp521,ecdsa-sha2-nistp384,ecdsa-sha2-nistp256,rsa-sha2-512,rsa-sha2-256]” 的含義以及如何解決。

錯誤分析:

  • [ERROR] could not connect to ssh://172.16.65.210:22:表示無法連接到 SSH 伺服器 172.16.65.210 的 22 埠。
  • kex error : no match for method server host key algo:表示金鑰交換(Key Exchange,KEX)階段出現問題,客戶端和伺服器無法就伺服器主機金鑰演算法達成一致。
  • server [ssh-rsa,ssh-dss]:表示伺服器僅支援 ssh-rsa 和 ssh-dss 演算法。
  • client [ssh-ed25519,ecdsa-sha2-nistp521,ecdsa-sha2-nistp384,ecdsa-sha2-nistp256,rsa-sha2-512,rsa-sha2-256]:表示客戶端支援的演算法列表,但不包含伺服器支援的 ssh-rsa 和 ssh-dss。

問題根源:

客戶端和伺服器支援的伺服器主機金鑰演算法不一致,導致無法建立安全連接。

解決方法:

  1. 修改伺服器配置:

如果可以控制伺服器,建議在伺服器上增加對更安全的演算法(如 ecdsa-sha2-nistp256 或 rsa-sha2-256)的支援。具體方法取決於伺服器的 SSH 軟體版本。
修改客戶端配置:

如果無法控制伺服器,則需要修改客戶端的 SSH 配置,使其支援伺服器支援的演算法。

  1. 在 OpenSSH 客戶端的配置檔案(通常為 ~/.ssh/config)中,新增以下配置:

Host 172.16.65.210
HostKeyAlgorithms ssh-rsa,ssh-dss

保存配置後,重新嘗試連接。

注意:

  • 一般不建議使用 ssh-dss 演算法,因為它已被認為不安全。如果伺服器僅支援 ssh-dss,請謹慎考慮是否要連接。
  • 在進行任何配置修改前,請做好備份,以免造成不可挽回的錯誤。

沒有留言:

張貼留言

分支 ( branch )應用情境筆記

分支 ( branch )應用情境筆記 最近在協助新版控機制導入,匯整一下收集到的分支 ( branch )應用情境