Ответ 1
openssl rsa -in privkey.pem -pubout > key.pub
Это записывает открытый ключ в key.pub
Следующая команда создает файл, который содержит как открытый, так и закрытый ключ:
openssl genrsa -des3 -out privkey.pem 2048
Источник: здесь
В OpenSSL закрытый ключ также содержит информацию открытого ключа, поэтому открытый ключ не нужно создавать отдельно
Как мы можем извлечь открытый ключ из файла privkey.pem?
Спасибо.
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
Для тех, кто интересуется деталями, вы можете видеть, что внутри файла открытого ключа (сгенерировано, как описано выше), делая следующее: -
openssl rsa -noout -text -inform PEM -in key.pub -pubin
или для файла закрытого ключа, это: -
openssl rsa -noout -text -in key.private
который выводит в виде текста на консоли фактические компоненты ключа (модуль, показатели, простые числа...)
Если вы посмотрите, как скопировать пару ключей 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
Для импорта 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-----
Однако AWS НЕ примет этот файл.
Вам нужно отключить -----BEGIN PUBLIC KEY-----
и -----END PUBLIC KEY-----
от файла. Сохраните его и импортируйте, и он должен работать в AWS.