如何使用OpenSSL提取公钥?

时间:2012-04-22 19:12:58

标签: openssl public-key-encryption pki

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

openssl genrsa -des3 -out privkey.pem 2048

来源:here

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

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

感谢。

5 个答案:

答案 0 :(得分:169)

openssl rsa -in privkey.pem -pubout > key.pub

将公钥写入key.pub

答案 1 :(得分:110)

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

答案 2 :(得分:4)

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

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

或私钥文件,这: -

openssl rsa -noout -text -in key.private

在控制台上以文本形式输出密钥的实际组件(模数,指数,素数......)

答案 3 :(得分:2)

如果您正在查看如何将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

答案 4 :(得分:1)

对于AWS导入现有公钥,

  1. 从.pem导出这样做...(在linux上)

    openssl rsa -in ./AWSGeneratedKey.pem -pubout -out PublicKey.pub
    
  2. 这将产生一个文件,如果你在文本编辑器中打开,看起来像这样......

    -----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中工作。