RSA 密钥的 160 位指纹

RSA 密钥的 160 位指纹

命令

ssh-keygen -lf /etc/ssh/ssh_host_rsa_key.pub

打印128位RSA 密钥的指纹。

获取命令是什么160位RSA 密钥的指纹?

答案1

密钥指纹是密钥材料的哈希值。在公钥文件中,密钥材料是该行中第二个以空格分隔的字段,以 Base64 编码。指纹的显示格式取决于所使用的哈希值。

128位指纹采用MD5,以十六进制显示。例如,以下命令显示相同的指纹,但标点符号和周围材料不同:

ssh-keygen -f /etc/ssh/ssh_host_rsa_key.pub -l -E md5
</etc/ssh/ssh_host_rsa_key.pub awk '{print $2}' | base64 -d | md5sum

SHA256 指纹(256 位)以 Base64 显示。同样,这里有两个显示指纹的命令。

ssh-keygen -f /etc/ssh/ssh_host_rsa_key.pub -l -E sha256
</etc/ssh/ssh_host_rsa_key.pub awk '{print $2}' | base64 -d | openssl sha -sha256 -binary | base64

如果您需要 160 位指纹,则可以使用 SHA-1,但它从未得到普遍支持(我认为直到 SHA-1 本身被弃用时,SHA-1 才被引入作为 MD5 的替代品)。当前版本的 OpenSSH 不支持它,但您可以使用上面的任一替代方法来sha1代替md5sha256,具体取决于您是否需要十六进制或 base64 格式。

相关内容