Как извлечь открытый ключ с помощью OpenSSL?

Следующая команда создает файл, который содержит как открытый, так и закрытый ключ:

openssl genrsa -des3 -out privkey.pem 2048

Источник: здесь

В OpenSSL закрытый ключ также содержит информацию об открытом ключе, поэтому открытый ключ не нужно генерировать отдельно.

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

Благодарю.

6 ответов

Решение
openssl rsa -in privkey.pem -pubout > key.pub

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

Хотя описанный выше метод работает в общем случае, он не работает с файлами PEM Amazon Web Services (AWS).

Я нашел в документации по AWS следующую команду:ssh-keygen -y

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

edit Спасибо @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, импортирующего существующий открытый ключ,

  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.

Если вы ищете, как скопировать 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 для извлечения файла pub из файла pem как

      openssl x509 -inform pem -in private_key.pem -pubkey -noout > public_key.pub
Другие вопросы по тегам