Ssh

PEM ssh 密鑰的指紋

  • May 18, 2019

我有一個 PEM 文件,我將它添加到正在執行的 ssh-agent 中:

$ file query.pem
query.pem: PEM RSA private key

$ ssh-add ./query.pem
Identity added: ./query.pem (./query.pem)

$ ssh-add -l | grep query
2048 ef:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX ./query.pem (RSA)

如何直接從文件中獲取密鑰的指紋(我在 ssh-agent 中看到)?我知道ssh-keygen -l -f some_key適用於“普通”ssh 密鑰,但不適用於 PEM 文件。

如果我在 .pem 文件上嘗試 ssh-keygen,我會得到:

$ ssh-keygen -l -f ./query.pem                                             
key_read: uudecode PRIVATE KEY----- failed
key_read: uudecode PRIVATE KEY----- failed
./query.pem is not a public key file.

此鍵開頭為:

-----BEGIN RSA PRIVATE KEY-----
MIIEp.... etc.

與“正常”私鑰相反,它看起來像:

-----BEGIN RSA PRIVATE KEY-----
Proc-Type: 4,ENCRYPTED
DEK-Info: AES-128-CBC,E15F2.... etc.

如果要找回失去的公鑰文件的指紋,可以從私鑰文件中恢復

$ ssh-keygen -yf path/to/private_key_file > path/to/store/public_key_file

然後您就可以確定公共指紋:

$ ssh-keygen -lf path/to/store/public_key_file
2048 SHA256:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX user@host (RSA)

在一些較新的系統上,這會列印密鑰的 SHA256 指紋。您可以使用選項列印密鑰的 MD5 指紋(冒號形式)-E

$ ssh-keygen -E md5 -lf path/to/store/public_key_file
2048 MD5:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx user@host (RSA)

作為一個命令行

$ ssh-keygen -yf /etc/ssh/ssh_host_ecdsa_key | ssh-keygen -E md5 -lf -
2048 MD5:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx user@host (RSA)

引用自:https://serverfault.com/questions/549075