2012-04-22 6 views
78

Следующая команда создает файл, который содержит в себе как открытые и закрытые ключи:Как извлечь открытый ключ с помощью OpenSSL?

openssl genrsa -des3 -out privkey.pem 2048 

Источник: here

С OpenSSL, секретный ключ содержит информацию открытого ключа, так что открытый ключ Безразлично 't необходимо создать отдельно

Как извлечь открытый ключ из файла privkey.pem?

Спасибо.

ответ

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

Это пишет публичный ключ key.pub

+0

Большое спасибо! – Jake

+0

Добро пожаловать :) – stewe

+9

Всегда лучше использовать внутреннюю опцию для этого: '-out', например: ' openssl rsa -in privkey.pem -pubout -out key.pub' вместо перенаправления stdout на файл. –

4

Для тех, кто заинтересован в деталях - вы можете увидеть, что внутри файла ключа общественности (генерируется, как описано выше), при этом: -

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

или файл закрытого ключа, это: -

openssl rsa -noout -text -in key.private 

, который выводит в виде текста на консоли фактические компоненты ключа (модуль, показатели, простые числа ...)

68

Хотя вышеупомянутая техника работает в общем случае, она не работала с файлами PEM Amazon Web Services (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

+4

Это правильный ответ' ssh-keygen -y -f key.pem' – Justin

+1

Согласованный 'ssh-keygen -y -f key.pem' верен. – dps

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 
+2

Вывод открытого ключа 'openssl' зажат в заголовках PEM, которые вы должны удалить, прежде чем AWS CLI примет ключ. –

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.

Смежные вопросы