Единственная ключевая пара для всех регионов
Можно ли использовать один и тот же файл пары ключей во всех регионах? Я хочу сохранить доступ к ssh как можно проще.
Я установил один файл для каждого региона. Я попытался загрузить тот же файл в другом регионе, но он не работал должным образом.
Ответы
Ответ 1
Между тем, это стало возможным благодаря импорту ваших собственных пар ключей, см. Вступительный пост Новая функция Amazon EC2: принесите свою собственную пару ключей:
Теперь вы можете импортировать свою собственную пару ключей RSA (или, если быть точнее, общедоступную половину) для использования с вашими экземплярами Amazon EC2.
Зачем тебе это делать? Вот несколько причин:
- Доверие - импортируя свою собственную пару ключей, вы можете гарантировать полный контроль над своими ключами.
- Безопасность -You может быть уверена, что ваш закрытый ключ никогда не передавался по проводам.
- Управление несколькими регионами. Вы можете использовать один и тот же открытый ключ в нескольких регионах AWS. [Акцент мой]
Этот подход действительно очень полезен/удобен - я использую его уже некоторое время, и он значительно упростил использование EC2 для нескольких регионов и учетных записей.
Эрик Хаммонд предоставляет более подробную информацию и краткое руководство в своей статье Загрузка личных ключей ssh в Amazon EC2:
Amazon недавно запустила возможность загрузки своего собственного открытого ключа ssh в EC2, чтобы его можно было передавать новым экземплярам при запуске. До этого вам всегда приходилось использовать пару ключей ssh, сгенерированную Amazon.
Соответственно, я рекомендую следовать его статье относительно (несколько простых) шагов, необходимых для достижения этой цели.
Ответ 2
Если вы можете импортировать свой собственный открытый ключ RSA, вы можете поделиться ключом, созданным Amazon, по регионам:
- Используя ключ, который вы хотите предоставить, войдите в экземпляр в области, где он был сгенерирован.
- Открыть ~/.ssh/authorized_keys
- Найдите строку с ключом, который хотите разделить (конец строки должен показывать имя ключевой пары, которое вы указали при ее создании)
- Скопируйте все строки до первого символа имени ключевой пары. Должно быть 382 символа.
- Сохраняйте скопированные данные в файл локально (например, на компьютер, на котором вы запустили сеанс SSH FROM).
- Войдите в консоль EC2 и переключитесь в область, к которой вы хотите поделиться ключом.
- Выберите "Управление ключами"
- Нажмите "Импортировать пару ключей" и укажите его в файле, созданном на шаге 5. Вероятно, вы хотите дать ключевой паре то же имя, что и вы, в регионе, в котором вы импортируете его.
- Запустить экземпляры с помощью этой пары ключей. Вы должны иметь возможность регистрироваться в экземплярах в новом регионе, используя тот же закрытый ключ, что и в регионе, где вы его создали.
Ответ 3
Если вы хотите создать пару ключей ssh в консоли AWS и загрузить эту пару ключей во все другие регионы.
-
Создайте новую пару ключей ssh в консоли или используйте тот, который у вас уже есть.
-
Создайте открытый ключ ssh из закрытого ключа ssh (pem> pub)
$ ssh-keygen -y -f ~/.ssh/MySSHKeyPair.pem >> ~/.ssh/MySSHKeyPair.pub
-
Загрузите открытый ключ ssh во все регионы. (удалить из списка регион, в котором уже есть ключ ssh)
$ for region in us-east-1 us-east-2 us-west-1 us-west-2 ap-south-1 ap-northeast-2 ap-southeast-1 ap-southeast-2 ap-northeast-1 eu-central-1 eu-west-1 eu-west-2; do aws ec2 import-key-pair --key-name MySSHKeyPair --public-key-material file://~/.ssh/MySSHKeyPair.pub --region $region; done
-
Получить список всех пар ключей ssh во всех регионах.
$ for region in us-east-1 us-east-2 us-west-1 us-west-2 ap-south-1 ap-northeast-2 ap-southeast-1 ap-southeast-2 ap-northeast-1 eu-central-1 eu-west-1 eu-west-2; do aws ec2 describe-key-pairs --region $region; done
Ответ 4
Сгенерированный AWS ключ может быть перенесен в другой регион:
- Войдите в экземпляр, созданный с помощью ключа, который вы хотите перенести.
- Установите ec2-api-инструменты, если они еще не присутствуют (sudo apt-get install ec2-api-tools)
Используйте эту команду
ec2-import-keypair keypair-name --public-key-file ~/.ssh/authorized_keys --region aws-region
С вышеприведенными шагами я передал созданный AWS ключ из Сингапурского региона в район штата Орегон, и тот же ключ работал отлично для меня.
Также перейдите по этой ссылке:
https://forums.aws.amazon.com/thread.jspa?threadID=52654
Ответ 5
Вы также можете использовать aws cli
для передачи пары ключей в другой регион.
aws ec2 import-key-pair --key-name my-key --public-key-material file://~/.ssh/id_rsa.pub --region my-region
Подробнее см. эту проблему в GitHub.
Ответ 6
Загрузите файл pem, который мне нужно скопировать в другие регионы, а затем...
# chmod 400 /home/ec2-user/mydec15a.pem
# ssh-keygen -y -f /home/ec2-user/mydec15a.pem >> ~/.ssh/MySSHKeyPair.pub
# aws ec2 import-key-pair --key-name mydec15a --public-key-material file://~/.ssh/MySSHKeyPair.pub --region us-west-2
Ответ 7
- Создайте новую пару ключей ssh в консоли или используйте тот, который у вас уже есть.
- Создайте открытый ключ ssh из закрытого ключа ssh (pem> pub) $ ssh-keygen -y -f ~/.ssh/rainman_key.pem >> ~/.ssh/rainman_public.pub
- Загрузите открытый ключ ssh во все регионы, кроме того, где он существует. Затем с помощью python экспортируйте его. Ниже приведен код:
import os
regions=["us-east-1","us-east-2","us-west-1","us-west-2","ap-east-1","ap-south-1","ap-northeast-2","ap-southeast-1","ap-southeast-2","ap-northeast-1","ca-central-1" ,"eu-central-1","eu-west-1","eu-west-2","eu-west-3","eu-north-1","sa-east-1"]
for region in regions:
os.system("aws ec2 import-key-pair --key-name rainman_key --public-key-material file://rainman_public.pub --region "+region)**