Ssh
驗證舊格式的主機密鑰指紋
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
也接受它。但這需要我ssh
在desktop
.從另一個關於伺服器指紋的問題的答案中,我了解到舊表單可以顯示
ssh-keygen -E md5
,而新表單可以-E sha256
。但該-E
選項僅在 SHA256 成為預設值時出現 -ssh-keygen
on的版本server
只能顯示 MD5。要查看我信任的密鑰的 SHA256 指紋,我首先必須檢索它(例如通過第三台機器)並將其放在新人ssh-keygen
可以找到的地方。或者我必須ssh-keygen
在server
. (-E
意味著完全不同的東西ssh
。)如何以相同的格式顯示兩個密鑰(我信任的一個和我正在使用的一個)?最好不安裝其他版本或複制密鑰文件?
採用
ssh -o FingerprintHash=md5 10.33.1.114
從客戶端獲取舊
md5
指紋。