Как добавить файл 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