OpenBSD“ssh-keygen -l”輸出格式在 5.7 中已更改。從較舊的 ssh 版本連線時如何驗證主機金鑰?
在 OpenBSD 5.6 之前,host_keys 指紋輸出格式如下:
# ssh-keygen -lf ssh_host_ecdsa_key.pub
256 9d:76:ba:86:80:ef:63:eb:41:2f:13:f3:f4:b5:0b:35 [email protected] (ECDSA)
在 OpenBSD 5.7 中,輸出格式已變更:
# ssh-keygen -lf ssh_host_ecdsa_key.pub
256 SHA256:6vYsd91sIrtVqPXazpPfRxj9QDa+1+Ns2C2lKSUph3c [email protected] (ECDSA)
當從 OpenBSD5.7 ssh 用戶端連線到 OpenBSD5.7 sshd 時,可以進行驗證:
# ssh localhost
The authenticity of host 'localhost (127.0.0.1)' can't be established.
ECDSA key fingerprint is SHA256:6vYsd91sIrtVqPXazpPfRxj9QDa+1+Ns2C2lKSUph3c.
Are you sure you want to continue connecting (yes/no)?
從 OpenBSD 5.6 連線到 OpenBSD 5.7 機器時如何驗證金鑰指紋?有沒有辦法轉換輸出格式?
答案1
在 OpenBSD 5.7 中,ssh-keygen 使用 SHA256 作為預設指紋雜湊。
您正在尋找指紋的 MD5 雜湊值:
# ssh-keygen -l -E md5 -f /etc/ssh/ssh_host_ecdsa_key.pub