以下命令生成一个包含公钥和私钥的文件:
openssl genrsa -des3 -out privkey.pem 2048
来源:这里
使用 OpenSSL,私钥也包含公钥信息,因此不需要单独生成公钥
我们如何从 privkey.pem 文件中提取公钥?
谢谢。
以下命令生成一个包含公钥和私钥的文件:
openssl genrsa -des3 -out privkey.pem 2048
来源:这里
使用 OpenSSL,私钥也包含公钥信息,因此不需要单独生成公钥
我们如何从 privkey.pem 文件中提取公钥?
谢谢。
openssl rsa -in privkey.pem -pubout > key.pub
将公钥写入key.pub
虽然上述技术适用于一般情况,但它不适用于 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
对于那些对细节感兴趣的人-您可以通过执行以下操作查看公钥文件中的内容(如上所述生成):-
openssl rsa -noout -text -inform PEM -in key.pub -pubin
或者对于私钥文件,这个: -
openssl rsa -noout -text -in key.private
它将键的实际组件(模数,指数,素数,...)作为文本输出到控制台上
对于 AWS 导入现有公钥,
从 .pem 导出执行此操作...(在 linux 上)
openssl rsa -in ./AWSGeneratedKey.pem -pubout -out PublicKey.pub
这将产生一个文件,如果你在一个看起来像这样的文本编辑器中打开它......
-----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAn/8y3uYCQxSXZ58OYceG
A4uPdGHZXDYOQR11xcHTrH13jJEzdkYZG8irtyG+m3Jb6f9F8WkmTZxl+4YtkJdN
9WyrKhxq4Vbt42BthadX3Ty/pKkJ81Qn8KjxWoL+SMaCGFzRlfWsFju9Q5C7+aTj
eEKyFujH5bUTGX87nULRfg67tmtxBlT8WWWtFe2O/wedBTGGQxXMpwh4ObjLl3Qh
bfwxlBbh2N4471TyrErv04lbNecGaQqYxGrY8Ot3l2V2fXCzghAQg26Hc4dR2wyA
PPgWq78db+gU3QsePeo2Ki5sonkcyQQQlCkL35Asbv8khvk90gist4kijPnVBCuv
cwIDAQAB
-----END PUBLIC KEY-----
但是 AWS 不会接受这个文件。
您必须从文件中删除-----BEGIN PUBLIC KEY-----
and -----END PUBLIC KEY-----
。保存并导入,它应该可以在 AWS 中使用。
如果您正在寻找如何将 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
使用 openssl 从 pem 文件中提取 pub 文件为
openssl x509 -inform pem -in private_key.pem -pubkey -noout > public_key.pub