Можно ли использовать один и тот же файл пары ключей во всех регионах? Я хочу сохранить доступ к ssh как можно проще.
Я установил один файл для каждого региона. Я попытался загрузить тот же файл в другом регионе, но он не работал должным образом.
Можно ли использовать один и тот же файл пары ключей во всех регионах? Я хочу сохранить доступ к ssh как можно проще.
Я установил один файл для каждого региона. Я попытался загрузить тот же файл в другом регионе, но он не работал должным образом.
Между тем, это стало возможным благодаря импорту ваших собственных пар ключей, см. Вступительный пост Новая функция Amazon EC2: принесите свою собственную пару ключей:
Теперь вы можете импортировать свою собственную пару ключей RSA (или, если быть точнее, общедоступную половину) для использования с вашими экземплярами Amazon EC2.
Зачем тебе это делать? Вот несколько причин:
- Доверие - импортируя свою собственную пару ключей, вы можете гарантировать полный контроль над своими ключами.
- Безопасность -You может быть уверена, что ваш закрытый ключ никогда не передавался по проводам.
- Управление несколькими регионами. Вы можете использовать один и тот же открытый ключ в нескольких регионах AWS. [Акцент мой]
Этот подход действительно очень полезен/удобен - я использую его уже некоторое время, и он значительно упростил использование EC2 для нескольких регионов и учетных записей.
Эрик Хаммонд предоставляет более подробную информацию и краткое руководство в своей статье Загрузка личных ключей ssh в Amazon EC2:
Amazon недавно запустила возможность загрузки своего собственного открытого ключа ssh в EC2, чтобы его можно было передавать новым экземплярам при запуске. До этого вам всегда приходилось использовать пару ключей ssh, сгенерированную Amazon.
Соответственно, я рекомендую следовать его статье относительно (несколько простых) шагов, необходимых для достижения этой цели.
Если вы можете импортировать свой собственный открытый ключ RSA, вы можете поделиться ключом, созданным Amazon, по регионам:
Если вы хотите создать пару ключей 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
Сгенерированный AWS ключ может быть перенесен в другой регион:
Используйте эту команду
ec2-import-keypair keypair-name --public-key-file ~/.ssh/authorized_keys --region aws-region
С вышеприведенными шагами я передал созданный AWS ключ из Сингапурского региона в район штата Орегон, и тот же ключ работал отлично для меня.
Также перейдите по этой ссылке:
Вы также можете использовать aws cli
для передачи пары ключей в другой регион.
aws ec2 import-key-pair --key-name my-key --public-key-material file://~/.ssh/id_rsa.pub --region my-region
Подробнее см. эту проблему в GitHub.
Загрузите файл 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
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)**