2012-04-22 74 views
78

下面的命令生成包含公共和私有密鑰的文件:如何使用OpenSSL提取公鑰?

openssl genrsa -des3 -out privkey.pem 2048 

來源:here

OpenSSL的,該專用密鑰包括公鑰信息以及,所以公鑰沒有按不需要單獨生成

我們如何從privkey.pem文件中提取公鑰?

謝謝。

回答

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

寫入公鑰key.pub

+0

非常感謝! – Jake 2012-04-22 19:23:35

+0

歡迎:) – stewe 2012-04-22 19:28:04

+9

總是更好地使用內部選項來執行此操作:'-out',例如: 'openssl rsa -in privkey.pem -pubout -out key.pub'而不是將stdout重定向到文件。 – 2016-11-09 09:03:48

4

對於那些有興趣的細節 - 你可以看到什麼是公共密鑰文件中(如上所述產生的),這樣做: -

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

或私鑰文件,這一點: -

openssl rsa -noout -text -in key.private 

其輸出爲文本在控制檯上,密鑰的實際組成部分(模數,指數,素數......)

68

儘管上述技術適用於一般情況,但它不適用於Amazon Web Services(AWS)PEM文件。

我確實發現在AWS文檔以下命令作品: ssh-keygen -y

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

+30

謝謝。這是我需要的。要跳過提示,您可以使用'ssh-keygen -y -f key.pem> key.pub' – makenova 2015-05-19 22:56:51

+4

這是正確答案'ssh-keygen -y -f key.pem' – Justin 2016-06-10 16:47:16

+1

同意的'ssh-keygen -y -f key.pem'是正確的。 – dps 2016-06-30 13:19:32

2

如果您尋找如何將亞馬遜AWS .pem密鑰對複製到不同的 區域執行以下操作:

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

Then

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

'openssl'的公共密鑰輸出夾在PEM頭中,在AWS CLI接受之前您必須將其刪除鍵。 – 2016-04-22 09:49:38

0

對於AWS導入現有的公共密鑰,

  1. 從.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----- 
  1. 但是AWS不會接受此文件。

    您必須從文件中去除-----BEGIN PUBLIC KEY----------END PUBLIC KEY-----。保存並導入,它應該在AWS中工作。