如何使用OpenSSL提取公钥?

Jak*_*ake 112 openssl pki public-key-encryption

以下命令生成一个包含公钥和私钥的文件:

openssl genrsa -des3 -out privkey.pem 2048
Run Code Online (Sandbox Code Playgroud)

来源:这里

使用OpenSSL,私钥也包含公钥信息,因此不需要单独生成公钥

我们如何从privkey.pem文件中提取公钥?

谢谢.

ste*_*ewe 177

openssl rsa -in privkey.pem -pubout > key.pub
Run Code Online (Sandbox Code Playgroud)

将公钥写入 key.pub

  • 总是更好地使用内部选项来执行此操作:`-out`,例如:`openssl rsa -in privkey.pem -poutout -out key.pub`而不是将stdout重定向到文件. (19认同)
  • @JuanAntonio你能解释一下为什么使用 -out 而不是重定向更好吗?非常感谢 (3认同)

lab*_*idi 121

虽然,上述技术适用于一般情况,但它不适用于Amazon Web Services(AWS)PEM文件.

我确实在AWS文档中发现以下命令有效: ssh-keygen -y

http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-key-pairs.html

编辑 感谢@makenova的完整专栏:

ssh-keygen -y -f key.pem > key.pub
Run Code Online (Sandbox Code Playgroud)

  • 谢谢.这是我想要的.要跳过提示,可以使用`ssh-keygen -y -f key.pem> key.pub` (38认同)
  • 这是正确答案`ssh-keygen -y -f key.pem` (5认同)
  • 同意`ssh-keygen -y -f key.pem`是正确的. (3认同)
  • @makenova 这将**重新生成** `key.pem` 中的密钥,这可能会阻止您登录需要该密钥的实例! (2认同)

cnd*_*cnd 5

对于那些对细节感兴趣的人,您可以通过执行以下操作来查看公钥文件(如上所述生成)中的内容:

openssl rsa -noout -text -inform PEM -in key.pub -pubin
Run Code Online (Sandbox Code Playgroud)

或对于私钥文件,这是:-

openssl rsa -noout -text -in key.private
Run Code Online (Sandbox Code Playgroud)

它在控制台上以文本形式输出键的实际组成部分(模数,指数,质数等)