该ssh-keygen
命令生成的.pub
文件描述为“公钥文件”,但与我通常看到的大多数“公钥文件”的格式完全不同,它们都是PEM格式。该ssh-keygen
风格的文件看起来是这样的:
ssh-rsa AAAAB3NzaC1... user@host
...而PEM文件如下所示:
-----BEGIN CERTIFICATE-----
MIIGZjCCBU6gAwIBAgIDCIrNMA0GCSqGSIb3DQEBBQUAMIGMMQsw...
-----END CERTIFICATE-----
这两种格式是可以互换的,还是执行根本不同的目的?我遇到了这个问题,因为我想获得我的PEM编码的公共密钥文件的RSA2密钥指纹,但是通常建议这样做的方法(ssh-keygen -l
)表示我的PEM编码的文件“不是公共密钥文件”。
顺便说一句,我知道这个答案,但是它并不涵盖由生成的.pub文件ssh-keygen
。
1
嗯,SSH公钥与PEM格式的证书不同。你看过这个吗?serverfault.com/questions/114301/...
—
CJC
重要的是要在这里特别注意,您可能正在查看的是OpenSSH,而不是不太常见的SSH.COM或其他实现。标准PEM编码的公钥实际上对一些不太常见的实现有效。我知道我连接到的VMS盒需要一个PEM文件。
—
Zoredache
@cjc,对,它不是证书,但它也不是与通过运行获得的内容完全不同的
—
Zoredache
openssl rsa -in privatekey_rsa -pubout
,它实际上是一个公共密钥,而不是证书。