Ssh

RSA 密鑰的 160 位指紋

  • July 31, 2019

命令

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

列印 RSA 密鑰的128 位指紋。

獲取RSA 密鑰的160 位指紋的命令是什麼?

密鑰指紋是密鑰材料的散列。在公鑰文件中,密鑰材料是行中第二個以空格分隔的欄位,以 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 格式。

引用自:https://unix.stackexchange.com/questions/533138