[macOS Sierra] ssh/scp 出現 no matching host key type found 的錯誤?

[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 次)

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料