故障描述:
在windows下的ssh客戶端直接報錯,內容為:
Unable to negotiate with legacyhost: no matching host key type found. Their offer: ssh-dss
在Linux下不報錯,連不上服務器。打開ssh的verbose輸出模式,可以看到最后一行輸出也是ssh-dss的故障:
參考open-ssh的官方文檔原因是新版本的SSH禁用了ssh-dss(DSA)公鑰算法,DSA算法太脆弱不推薦使用。如果要重新激活,可以在命令行參數中指明:
ssh -oHostKeyAlgorithms=+ssh-dss user@legacyhost
或者在配置文件 ~/.ssh/config 中設置:
Host somehost.example.org HostKeyAlgorithms +ssh-dss