Назад | Перейти на главную страницу

Как получить файл .pem из пары ключей ssh?

Я создал пару ключей с помощью ssh-keygen и получил два классических id_rsa и id_rsa.pub.

Я импортировал открытый ключ в свою учетную запись AWS EC2.

Теперь я создал экземпляр Windows, и для расшифровки пароля этого экземпляра консоль AWS запрашивает у меня файл .pem. Как мне получить этот файл .pem из двух моих файлов id_rsa и id_rsa.pub?

В соответствии с этот, эту команду можно использовать:

ssh-keygen -f id_rsa -e -m pem

Это преобразует ваш общественный ключ к формату, совместимому с OpenSSL. Ваш частный key уже находится в формате PEM и может использоваться как есть (как заявил Майкл Хэмптон).

Дважды проверьте, не запрашивает ли AWS (X.509) свидетельство в формате PEM, который будет отличаться от ваших ключей SSH.

С помощью ssh-keygen для экспорта ключа в формате .pem у меня сработало.

ssh-keygen -f id_rsa.pub -m 'PEM' -e > id_rsa.pem

Затем просто скопируйте .pem ключ по мере необходимости.

Для справки:

  • в -f id_rsa.pub часть указывает входной файл для чтения
  • -m 'PEM указывает тип файла PEM
  • в -e опция указывает, что вывод будет экспортирован

id_rsa - это файл, который вы должны использовать для расшифровки пароля экземпляра Windows EC2, но просто убедитесь, что файл, который вы копируете, не защищен фразой.

Решил проблему получения временно незащищенного id_rsa файл с чем-то вроде:

$ openssl rsa -in ~/.ssh/id_rsa -out tmp_file.pem

Первоначально при использовании ssh-keygen, Я мог сгенерировать открытый ключ, совместимый с AWS EC2, но имел проблемы с созданием закрытых ключей, которые были совместимы. Следующее создает пары открытых и закрытых ключей, совместимые с AWS EC2.

ssh-keygen -P "" -t rsa -b 4096 -m pem -f my-key-pair

Вот информация по каждому параметру:

  • -P: для ключевой фразы. Преднамеренно пусто.
  • -t: указывает тип создаваемого ключа. Для пары ключей AWS EC2 требуется RSA. По моему опыту, это относится к создаваемому открытому ключу.
  • -b: указывает количество бит в ключе. Поддерживаемые длины: 1024, 2048 и 4096. Если вы подключаетесь с использованием SSH с использованием EC2 Instance Connect API, поддерживаемые длины составляют 2048 и 4096.
  • -m: указывает формат ключа для генерации ключа. Установка формата «PEM» при создании поддерживаемого типа закрытого ключа приведет к тому, что ключ будет сохранен в устаревшем формате закрытого ключа PEM. Паре ключей AWS EC2 требуется устаревший формат
  • -f: указывает имя выходного файла ключевого файла.

Ресурсы:

Для получения дополнительной информации о ssh-keygen см .:https://man.openbsd.org/ssh-keygen.1

AWS - пары ключей EC2 -https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-key-pairs.html

Когда вы запускаете экземпляр EC2, вы назначаете ему пару ключей (или ни одной). Это не может быть изменено впоследствии.

Только используя этот файл .pem из этой пары ключей, вы сможете расшифровать пароль Windows.

Файл .pem должен был быть загружен при создании пары ключей. Вы не можете получить его снова. Если вы его потеряли, вам не повезло.

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

Проще говоря, если у вас нет исходного файла .pem, вы не сможете получить пароль.

Изменить: перечитав вопрос, я понимаю, что OP импортировал свой ключ в AWS.