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