如何使用 OpenSSL 提取公钥?

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

openssl genrsa -des3 -out privkey.pem 2048

资料来源: 给你

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

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

谢谢。

234368 次浏览
openssl rsa -in privkey.pem -pubout > key.pub

将公钥写入 key.pub

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

openssl rsa -noout -text -inform PEM -in key.pub -pubin

或者对于私钥文件,如下所示:-

openssl rsa -noout -text -in key.private

它在控制台上以文本的形式输出键的实际组件(模数、指数、质数、 ...)

尽管上述技术适用于一般情况,但不适用于 AmazonWebServices (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

如果您正在寻找如何将一个 Amazon AWS .pem密钥对复制到一个不同的 区域采取以下行动:

openssl rsa -in .ssh/amazon-aws.pem -pubout > .ssh/amazon-aws.pub

然后

aws ec2 import-key-pair --key-name amazon-aws --public-key-material '$(cat .ssh/amazon-aws.pub)' --region us-west-2

对于导入现有公钥的 AWS,

  1. 从. pem 导出... (在 linux 上)

    openssl rsa -in ./AWSGeneratedKey.pem -pubout -out PublicKey.pub
    

This will produce a file which if you open in a text editor looking something like this...

-----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAn/8y3uYCQxSXZ58OYceG
A4uPdGHZXDYOQR11xcHTrH13jJEzdkYZG8irtyG+m3Jb6f9F8WkmTZxl+4YtkJdN
9WyrKhxq4Vbt42BthadX3Ty/pKkJ81Qn8KjxWoL+SMaCGFzRlfWsFju9Q5C7+aTj
eEKyFujH5bUTGX87nULRfg67tmtxBlT8WWWtFe2O/wedBTGGQxXMpwh4ObjLl3Qh
bfwxlBbh2N4471TyrErv04lbNecGaQqYxGrY8Ot3l2V2fXCzghAQg26Hc4dR2wyA
PPgWq78db+gU3QsePeo2Ki5sonkcyQQQlCkL35Asbv8khvk90gist4kijPnVBCuv
cwIDAQAB
-----END PUBLIC KEY-----
  1. 但是 AWS 不会接受这个文件。

    您必须从文件中剥离 -----BEGIN PUBLIC KEY----------END PUBLIC KEY-----。保存并导入,它应该可以在 AWS 中工作。

使用 openssl 从 pem 文件解压缩 pub 文件

openssl x509 -inform pem -in private_key.pem -pubkey -noout > public_key.pub