Поиск по сайту:

Как добавить файл EC2 PEM в цепочку ключей SSH


Когда вы создаете новый экземпляр в EC2, вам предоставляется файл PEM, который действует как ваш ключ доступа. Вам нужно будет использовать это для SSH на сервер, поэтому вы захотите добавить его в свою цепочку для ключей для быстрого доступа.

Как использовать ваш файл PEM

Вы можете использовать файлы PEM вручную, добавив флаг -i к ssh:

ssh -i keyfile.pem user@host

Это неудобно вводить каждый раз, поэтому есть несколько способов исправить это.

Самый простой способ — добавить свои собственные открытые ключи в ваш экземпляр EC2 и игнорировать файл PEM для всех будущих входов в систему. Ваш открытый ключ обычно хранится в ~/.ssh/id_rsa.pub, поэтому вам нужно скопировать его в файл ~/.ssh/authorized_keys на сервере. . Если вы работаете в команде из одного человека, просто запускаете один сервер и не против делать это каждый раз, это все, что вам нужно сделать.

Однако вам придется проходить этот процесс каждый раз, когда вы создаете новый экземпляр. Но с файлами PEM вы можете повторно использовать их между экземплярами. Кроме того, они не зависят от ваших личных закрытых ключей, поэтому вы можете передавать их другим людям, которым нужен доступ по ssh.

Команда ssh-add сохранит ключ в вашем SSH-агенте, пока вы не выйдете из системы:

ssh-add ~/keyfile.pem

Однако вам нужно будет запускать это при каждой перезагрузке, так что это не идеально. Вы можете добавить это в свой ~/.bashrc или ~/.bash_profile , чтобы он запускался каждый раз при загрузке терминала, что решает проблему. Не забудьте перенаправить вывод на /dev/null , чтобы отключить команду, иначе вы будете видеть «Идентификация добавлена» каждый раз, когда открываете терминал.

ssh-add ~/keyfile.pem >/dev/null 2>&1

Храните ключи SSH в цепочке ключей macOS

Если вы используете macOS, вы можете хранить дополнительные ключи SSH в цепочке ключей macOS. Откройте ~/.ssh/config и добавьте следующие строки:

Host *
UseKeychain yes

Теперь вы можете добавлять ключи с помощью

ssh-add -K ~/keyfile.pem

Ключи будут храниться в цепочке ключей и сохраняться при перезагрузке. Они будут автоматически загружены так же, как ~/id_rsa.

Замените id_rsa своим новым ключом

Хотя этот вариант работает, мы его не рекомендуем. Но если по какой-то причине вы действительно хотите, чтобы закрытый ключ AWS стал вашим новым личным закрытым ключом, вы можете заменить id_rsa файлом PEM из AWS. id_rsa загружается по умолчанию, поэтому вы по умолчанию будете использовать этот ключ для всего.

Убедитесь, что вы абсолютно уверены, что не используете свой текущий закрытый ключ ни для чего (SSH для подключения к другим серверам, GitHub и т. д.). Даже если вы думаете, что это не так, вы должны сделать резервную копию ваших текущих ключей SSH, прежде чем продолжить:

mv ~/.ssh/id_rsa ~/.ssh/id_rsa_old
mv ~/.ssh/id_rsa.pub ~/.ssh/id_rsa_old.pub

Файл AWS PEM необходимо преобразовать в формат PKCS8, чтобы использовать его в качестве закрытого ключа. Вы можете сделать это с OpenSSL:

openssl pkey < keyfile.pem > keyfile.pkcs8

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

openssl rsa -in keyfile.pkcs8 -pubout > keyfile.pub

Затем, убедившись, что вы создали резервную копию своего старого id_rsa, вы можете заменить их новыми:

mv keyfile.pkcs8 ~/.ssh/id_rsa
mv keyfile.pub ~/.ssh/id_rsa.pub