3
在新版本的openssh中以(旧)十六进制格式获取SSH密钥指纹
似乎openssh改变了它显示关键指纹的方式。 我正在尝试从客户端计算机SSH到服务器: 客户端:运行OpenSSH 6.6.1的ubuntu 14.04 服务器:运行OpenSSH 7.2p2的FreeBSD。 客户端将服务器密钥的md5哈希报告为16对十六进制数字的序列,如下所示: a7:b1:3e:3d:84:24:a2:5a:91:5f:6f:e9:cf:dd:2b:6a 服务器默认使用sha256哈希,但是由于这个答案,我可以通过运行以下命令强制它提供sha1哈希: [root@host /etc/ssh]# ssh-keygen -l -E sha1 -f ssh_host_ecdsa_key.pub 我希望结果看起来像这样: a7:b1:3e:3d:84:24:a2:5a:91:5f:6f:e9:cf:dd:2b:6a 但是我得到了这个: 256 SHA1:KIh0ejR4O+RqrSq7JdGAASddRfI root@host.local (ECDSA) 在我看来,现在正在显示指纹的base64编码版本,而不是十六进制数字。 如何获取服务器密钥的校验和,格式与(较旧的)客户端报告的格式相同(冒号分隔的十六进制数字,sha1哈希),以检查它们是否相同? 编辑: SSH的旧版本提供了md5校验和,而不是我错误地认为的sha1校验和。在-E选项中使用该校验和(应为现在接受的答案指出)可提供所需的输出。