命令
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
代替md5
或sha256
,具体取决于您是否需要十六进制或 base64 格式。