我有一个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 -l
无法读取私钥文件,尽管其他ssh-keygen
(和ssh*
)操作也可以。但是,当ssh-keygen
生成密钥时,它会同时写入privatekey文件id_rsa
和相应的publickey文件(.pub
例如添加)id_rsa.pub
。较早的版本ssh-keygen -l
会尝试将其添加.pub
到您指定的文件名中并读取该公钥文件。
.ssh/id_rsa
通过使用OpenSSH所有默认值生成的文件是一个PEM文件。私钥默认情况下是PEM编码的。实际上,您可以将通过OpenSSL生成的RSA密钥直接与OpenSSH一起使用。