小编sto*_*tic的帖子

在新版本的 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 选项中使用该校验和(正如现在接受的答案应该说明的那样)可提供所需的输出。

linux ssh freebsd openssh

55
推荐指数
3
解决办法
5万
查看次数

标签 统计

freebsd ×1

linux ×1

openssh ×1

ssh ×1