Ssh

驗證舊格式的主機密鑰指紋

  • August 19, 2016

OpenSSH 的主機密鑰指紋顯示格式最近發生了變化——在 6.7 和 6.8 版本之間。連接到新主機時,消息現在如下所示:

user@desktop:~$ ssh 10.33.1.114
The authenticity of host '10.33.1.114 (10.33.1.114)' can't be established.
ECDSA key fingerprint is SHA256:9ZTSzJsnk0byQRs24iKoYrf/d5eDvQL60tR/zO41k/I.
Are you sure you want to continue connecting (yes/no)?

在遠端主機server上(我通過第三台機器到達,我之前使用舊客戶端接受了密鑰),我可以看到指紋

user@server:~$ ssh-keygen -l -f /etc/ssh/ssh_host_ecdsa_key
256 a2:7e:2b:87:4c:47:69:16:78:9e:1a:4b:db:a7:a2:57  root@server (ECDSA)

但是沒有辦法將這兩者匹配起來。

如果我在 上安裝舊ssh版本desktop,並首先使用它進行連接,我會看到

user@desktop:~$ ssh 10.33.1.114
The authenticity of host '10.33.1.114 (10.33.1.114)' can't be established.
ECDSA key fingerprint is a2:7e:2b:87:4c:47:69:16:78:9e:1a:4b:db:a7:a2:57.
Are you sure you want to continue connecting (yes/no)?

那匹配,所以我可以安全地接受它,它會被添加到我的~/.ssh/known_hosts. 然後較新版本的ssh也接受它。但這需要我sshdesktop.

另一個關於伺服器指紋的問題的答案中,我了解到舊表單可以顯示ssh-keygen -E md5,而新表單可以-E sha256。但該-E選項僅在 SHA256 成為預設值時出現 - ssh-keygenon的版本server只能顯示 MD5。要查看我信任的密鑰的 SHA256 指紋,我首先必須檢索它(例如通過第三台機器)並將其放在新人ssh-keygen可以找到的地方。或者我必須ssh-keygenserver. (-E意味著完全不同的東西ssh。)

如何以相同的格式顯示兩個密鑰(我信任的一個和我正在使用的一個)?最好不安裝其他版本或複制密鑰文件?

採用

ssh -o FingerprintHash=md5 10.33.1.114

從客戶端獲取舊md5指紋。

引用自:https://unix.stackexchange.com/questions/304448