以下命令生成一个包含公钥和私钥的文件:
openssl genpkey -algorithm RSA -out private_key.pem
openssl genrsa -des3 -out privkey.pem 2048
来源:这里
使用OpenSSL,私钥包含公钥信息,因此不需要单独生成公钥
我们如何从privkey.pem文件中提取公钥?
谢谢。
openssl genpkey -algorithm RSA -out private_key.pem
openssl genrsa -des3 -out privkey.pem 2048
来源:这里
使用OpenSSL,私钥包含公钥信息,因此不需要单独生成公钥
我们如何从privkey.pem文件中提取公钥?
谢谢。
openssl rsa -in privkey.pem -pubout > key.pub
这会将公钥写入 key.pub
文件。
-out
,例如:
openssl rsa -in privkey.pem -pubout -out key.pub
,而不是将标准输出重定向到文件。 - Juan Antonio尽管上述技术适用于一般情况,但它无法在亚马逊网络服务(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
ssh-keygen -y -f key.pem > key.pub
。 - makenovassh-keygen -y -f key.pem
。 - Justinkey.pem
中的密钥,这可能会阻止您登录需要该密钥的实例! - SubmittedDeniedssh-rsa
,嵌套附加前缀用二进制零表示的base64编码,以及ssh-rsa
没有换行符和后缀。 SSH文件格式是专门为SSH设计的。我猜它不使用PEM格式是由于历史原因。 - Mikko Rantalainen对于那些对细节感兴趣的人,您可以通过执行以下操作查看公钥文件(如上所述生成)中的内容:
openssl rsa -noout -text -inform PEM -in key.pub -pubin
或者对于私钥文件,使用以下内容:
openssl rsa -noout -text -in key.private
该函数将密钥的实际组成部分(模数、指数、质数等)作为文本输出到控制台。
对于AWS导入现有的公钥,
Export from the .pem doing this... (on 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-----
和 -----END PUBLIC KEY-----
。保存后导入,它应该可以在 AWS 中工作。
ssh-rsa AAAAB3NzaC1y....
,运行命令:ssh-keygen -f PublicKey.pub -i -m PKCS8
。请注意,我已经对原文进行了翻译,没有添加任何额外的解释或内容。 - Rafael Milewski如果您想将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 标头中,您需要在 AWS CLI 接受该密钥之前将其删除。 - jpsecheropenssl x509 -inform pem -in private_key.pem -pubkey -noout > public_key.pub