Генерация закрытого ключа с помощью OpenSSL и открытого ключа ssh-keygen для SSH

Я пытаюсь с помощью openssl создать безопасный закрытый и открытый ключ для использования с моим провайдером облачного хостинга, но когда я это сделал, вывод открытого ключа из openssl не был распознан.

$ openssl genrsa -out private.pem -passout file:password.txt  2048

После генерации закрытого ключа RSA, 2048-битный модуль, затем

$ openssl rsa -in private.pem -passin file:password.txt   -pubout -out public.pem

Он написал открытый ключ RSA. Вывод примерно такой:

-----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAuefPvX5Bih6GYbr1eTNf
Fa++DvhHg4nxcXZAor7gNEM1+XPY2wxG2r2g/Jub6OWHd8GDAf6SBCCld+alC9WS
KnAd2qz34yBzG4pJ5/tLux1yX5k45BPTcTHfZGmFlAxsSNTZVh5Zh9KYUpsklKOW
2Pb5gwlMvweIoqf0lqrNqX8agDWzAn4bRbW8ZeNKUuNuccx4PlFwMg4lEcPypcCL
HPAHGiQTR1xZ/jlohFMIH1cGCBVC4kuaEtUi3Qer9wzuvh376RQPnKD0jJgraiDM
pSrdMeH+0eJfqckM8pJ99F/kfKWcGtk6l1AJX511xsPLDTHxaP/ry8zlaAJ1vH9o
3wIDAQAB
-----END PUBLIC KEY-----

Это стандартный формат, и он отлично работает для других целей, но для всех облачных и хостинг-провайдеров нужно что-то вроде этого для открытого ключа:

ssh-rsa XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX==

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

Я знаю, что ssh-keygen может сделать все это легко, но я использую последнюю версию openssl 1.0.2h с исправлением безопасности для некоторых уязвимостей, на которые указывают сотрудники Google и Red Hat.

Итак, как мне получить формат открытого ключа ssh-keygen, используя мой ключ, сгенерированный из openssl?

1 ответ

Решение

После некоторых исследований и экспериментов я нашел самое простое решение.

Сгенерируйте безопасный закрытый ключ, используя openssl с длиной пароля 32 или более символов, затем используйте команду ssh-keygen, чтобы получить требуемый вывод.

ssh-keygen  -y -f private.pem > public_key.pub

Работает точно!

Другие вопросы по тегам