[macOS Sierra] ssh/scp 出現 no matching host key type found 的錯誤?
自從升級到 macOS Sierra 後,就發現 ssh 壞掉啦~
從 Mac 上 ssh/scp 到其他的 Linux 主機,都會出現像下面的錯誤訊息:
testuser@localhost ~ $ scp test.py root@10.1.2.3:/tmp/ Unable to negotiate with 10.1.2.3 port 22: no matching host key type found. Their offer: ssh-dss
這個錯誤訊息是什麼呢?
在 OpenSSH Legacy Options 有詳細的說明,
這代表 ssh client 和 server 間沒辦法溝通出一個兩邊都同意的 public key 演算法。
照網頁上的說明,因為 ssh-dss (DSA) public key 演算法較不安全,
因此在 OpenSSH 7.0 之後預設停用了這個演算法…
不過如果要連線的 ssh server 就是不支援更新的 public key 演算法,
像剛剛的例子,ssh server 就只提供了 ssh-dss 這個演算法,不用的話就根本連不上…
這時只好編輯 /etc/ssh/ssh_config 這個檔案:
sudo vi /etc/ssh/ssh_config
接著加入 HostkeyAlgorithms +ssh-dss 這一行,加完之後內容如下:
Host * HostkeyAlgorithms +ssh-dss
再執行 ssh/scp 指令,就不會出現錯誤啦~
參考資料:macOS 10.12 Sierra – Corrupted MAC on input && No matching host key type
(本頁面已被瀏覽過 2,228 次)