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