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

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

openssl genrsa -des3 -out privkey.pem 2048

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

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

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

Спасибо.

Ответ 1

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

Это записывает открытый ключ в key.pub

Ответ 2

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

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

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

Ответ 3

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

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

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

openssl rsa -noout -text -in key.private

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

Ответ 4

Если вы посмотрите, как скопировать пару ключей 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

Ответ 5

Для импорта 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-----
  1. Однако AWS НЕ примет этот файл.

    Вам нужно отключить -----BEGIN PUBLIC KEY----- и -----END PUBLIC KEY----- от файла. Сохраните его и импортируйте, и он должен работать в AWS.