Ssh
PEM ssh 密鑰的指紋
我有一個 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)