Как изменить пару ключей для моего экземпляра ec2 в консоли управления AWS? Я могу остановить экземпляр, я могу создать новую пару ключей, но я не вижу ссылки для изменения пары ключей экземпляра.
Как изменить пару ключей для моего экземпляра ec2 в консоли управления AWS? Я могу остановить экземпляр, я могу создать новую пару ключей, но я не вижу ссылки для изменения пары ключей экземпляра.
Ответы:
Этот ответ полезен в том случае, если у вас больше нет SSH-доступа к существующему серверу (т.е. вы потеряли свой закрытый ключ).
Если у вас все еще есть доступ по SSH, используйте один из ответов ниже.
https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-key-pairs.html#replacing-lost-key-pair
Вот что я сделал, благодаря сообщению Эрика Хаммонда в блоге:
/dev/xvda1
громкость (назовем это томом А) - смотрите здесь/dev/xvdf
(или /dev/sdf
)SSH к новому микро экземпляру и монтируем том A к /mnt/tmp
$ sudo mount / dev / xvdf1 / mnt / tmp
Копировать ~/.ssh/authorized_keys
в/mnt/tmp/home/ubuntu/.ssh/authorized_keys
/dev/xvda
.pem
файлВот и все.
mkdir /mnt/tmp
а затем mount /dev/xvdf /mnt/tmp
должен сделать трюк для # 5. И не забывайте, что шаг 13. вероятно rm ~/.ssh/known_hosts
на коробках, из которых вы подключаетесь.
.ssh/authorized_keys
файла.
После запуска экземпляра невозможно изменить пару ключей, связанную с экземпляром, на уровне метаданных, но вы можете изменить ключ ssh, который вы используете для подключения к экземпляру.
В большинстве AMI есть процесс запуска, который загружает открытый ключ ssh и устанавливает его в файл .ssh / authorized_keys, чтобы вы могли войти в систему как пользователь, используя соответствующий закрытый ключ ssh.
Если вы хотите изменить, какой ssh-ключ вы используете для доступа к экземпляру, вам нужно отредактировать файл authorized_keys на самом экземпляре и преобразовать его в ваш новый открытый ключ ssh.
Файл author_keys находится в подкаталоге .ssh домашнего каталога пользователя, в который вы входите. В зависимости от того, какой AMI вы используете, он может находиться в одном из:
/home/ec2-user/.ssh/authorized_keys
/home/ubuntu/.ssh/authorized_keys
/root/.ssh/authorized_keys
После редактирования файла author_keys всегда используйте другой терминал, чтобы подтвердить, что вы можете подключиться к экземпляру ssh, прежде чем отключиться от сеанса, который вы используете для редактирования файла. Вы не хотите ошибиться и полностью заблокировать себя.
Пока вы думаете о парах ключей ssh в EC2, я рекомендую загрузить свой собственный открытый ключ ssh в EC2 вместо того, чтобы Amazon сгенерировал пару ключей для вас.
Вот статья, которую я написал об этом:
Загрузка личных ключей SSH в Amazon EC2
http://alestic.com/2010/10/ec2-ssh-keys
Это относится только к новым экземплярам, которые вы запускаете.
.pem
файл закрытого ключа на моем Mac, но ssh -i key.pem
не проходил аутентификацию (разрешение запрещено (publickey)). В консоли управления EC2 в разделе «Имя пары ключей» ничего не указано. Это тревожит меня. Как я могу установить это? На основе консоли управления создается впечатление, что ни одна из настроенных пар ключей не была назначена экземпляру!
Запустите эту команду после загрузки вашего AWS Pem.
ssh-keygen -f YOURKEY.pem -y
Затем сбросьте вывод в authorized_keys
.
Или скопируйте файл pem в свой экземпляр AWS и выполните следующие команды
chmod 600 YOURKEY.pem
а потом
ssh-keygen -f YOURKEY.pem -y >> ~/.ssh/authorized_keys
Инструкция от поддержки AWS EC2:
это сохранит обновленный файл author_keys
Теперь попробуйте открыть новый сеанс SSH для вашего экземпляра, используя новый ключ pai.
Когда вы подтвердите, что можете использовать SSH в экземпляре, используя новую пару ключей, вы можете vi .ssh / авторизованный_ключ и удалить старый ключ.
Ответ на замечание Шегги:
Если вы не можете подключиться к экземпляру (например, ключ поврежден), используйте консоль AWS для отключения тома ( http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-detaching-volume.html). ) и подключите его к рабочему экземпляру, затем измените ключ на томе и снова подключите его к предыдущему экземпляру.
Я заметил, что при управлении Elastic Beanstalk вы можете изменить активную пару ключей EC2. В разделе Elastic Beanstalk> Конфигурация> Безопасность выберите новый ключ из раскрывающегося списка ключей EC2 . Вы увидите это сообщение с вопросом, уверены ли вы:
EC2KeyName: изменения в настройках параметра EC2KeyName не вступят в силу немедленно. Каждый из ваших существующих экземпляров EC2 будет заменен, и ваши новые настройки вступят в силу.
Мой экземпляр уже был прекращен, когда я это сделал. Затем оно началось, завершилось и началось снова. Очевидно, «замена» означает завершение и создание нового экземпляра. Если вы изменили свой загрузочный том, сначала создайте AMI, а затем укажите этот AMI в той же форме Elastic Beanstalk> Configuration> Instances, что и Custom AMI ID . Это также предупреждает о замене экземпляров EC2.
После изменения пары ключей EC2 и пользовательского идентификатора AMI, а также после появления предупреждений о них нажмите кнопку « Сохранить», чтобы продолжить.
Помните, что IP-адрес изменяется при повторном создании экземпляра, поэтому вам нужно получить новый IP-адрес с консоли EC2, чтобы использовать его при подключении через SSH.
Я прошел через этот подход и через некоторое время смог заставить его работать. Отсутствие реальных команд усложняло ситуацию, но я понял это. ОДНАКО - гораздо более простой подход был найден и протестирован вскоре после:
Если следовать приведенным ниже шагам, это сэкономит много времени и не будет необходимости останавливать работающий экземпляр.
Вот и все. Наслаждайтесь :)
Я считаю, что самый простой подход заключается в:
Если вы используете платформу ElasticBeanstalk, вы можете изменить ключи, выполнив:
Это прервет текущий экземпляр и создаст новый с выбранными ключами / настройками.
В этом вопросе заданы два сценария:
1) У вас нет доступа к файлу .pem , поэтому вы хотите создать новый.
2) У вас есть. доступ к файлу pem с вами, но вы просто хотите изменить или создать новый файл .pem для какой-либо уязвимости или в целях безопасности .
Так что, если вы потеряли свои ключи, вы можете прокрутить вверх и увидеть другие ответы . Но если вы просто измените свой .pem файл в целях безопасности, выполните следующие действия: -
1) Перейдите в консоль AWS и создайте новый файл .pem из раздела пар ключей. Он автоматически загрузит .pem файл на ваш компьютер
2) измените разрешение на 400, если вы используете Linux / Ubuntu, нажмите приведенную ниже команду
chmod 400 yournewfile.pem
3) Генерация RSA недавно загруженного файла на вашем локальном компьютере
ssh-keygen -f yournewfile.pem -y
4) Скопируйте код RSA отсюда
5) Теперь SSH к вашему экземпляру через предыдущий файл .pem
ssh -i oldpemfileName.pem username@ipaddress
sudo vim ~/.ssh/authorized_keys
6) Оставьте одну-две строки и вставьте сюда скопированный RSA нового файла, а затем сохраните файл
7) Теперь ваш новый файл .pem связан с запущенным экземпляром.
8) Если вы хотите отключить предыдущий доступ к файлу .pem, просто отредактируйте
sudo vim ~/.ssh/authorized_keys
файл и удалить или изменить предыдущий RSA отсюда.
Примечание: - Удалите осторожно, чтобы вновь созданный RSA не изменился.
Таким образом, вы можете изменить / связать новый файл .pem с запущенным экземпляром.
Вы можете отозвать доступ к ранее созданному файлу .pem в целях безопасности.
Надеюсь, это поможет!
Самое простое решение - скопировать содержимое
~/.ssh/id_rsa.pub
в авторизованные ключи вашего экземпляра AWS в
~/.ssh/authorized_keys
Это позволит вам войти в экземпляр EC2 без указания файла pem для команды ssh. Вы можете удалить все остальные ключи, как только вы проверили подключение к нему.
Если вам нужно создать новый ключ, чтобы поделиться им с кем-то еще, вы можете сделать это с помощью:
ssh-keygen -t rsa
который создаст файл private key.pem, и вы можете получить его с помощью:
ssh-keygen -f private_key.pem -y > public_key.pub
Любой, у кого есть private_key.pem, сможет связаться с
ssh user@host.com -i private_key.pem
~/.ssh/authorized_keys
когда я не могу даже экземпляр SSH AWS?
Вам не нужно вращать корневое устройство и менять открытый ключ SSH authorized_keys
. Для этого можно использовать userdata для добавления ваших ключей ssh к любому экземпляру. Для этого сначала вам нужно создать новую KeyPair с помощью консоли AWS или с помощью ssh-keygen.
ssh-keygen -f YOURKEY.pem -y
Это создаст открытый ключ для вашей новой SSH KeyPair, скопируйте этот открытый ключ и используйте его в приведенном ниже сценарии.
Content-Type: multipart/mixed; boundary="//"
MIME-Version: 1.0
--//
Content-Type: text/cloud-config; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment; filename="cloud-config.txt"
#cloud-config
cloud_final_modules:
- [scripts-user, always]
--//
Content-Type: text/x-shellscript; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment; filename="userdata.txt"
#!/bin/bash
/bin/echo "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC6xigPPA/BAjDPJFflqNuJt5QY5IBeBwkVoow/uBJ8Rorke/GT4KMHJ3Ap2HjsvjYrkQaKANFDfqrizCmb5PfAovUjojvU1M8jYcjkwPG6hIcAXrD5yXdNcZkE7hGK4qf2BRY57E3s25Ay3zKjvdMaTplbJ4yfM0UAccmhKw/SmH0osFhkvQp/wVDzo0PyLErnuLQ5UoMAIYI6TUpOjmTOX9OI/k/zUHOKjHNJ1cFBdpnLTLdsUbvIJbmJ6oxjSrOSTuc5mk7M8HHOJQ9JITGb5LvJgJ9Bcd8gayTXo58BukbkwAX7WsqCmac4OXMNoMOpZ1Cj6BVOOjhluOgYZbLr" >> /home/hardeep/.ssh/authorized_keys
--//
После перезагрузки машина будет иметь указанный ключ публикации SSH. Удалите userdata после первого перезапуска. Подробнее о пользовательских данных при запуске .
Предупреждение: не забудьте снова очистить данные пользователя. В противном случае эта клавиша будет нажата при каждом запуске экземпляра. Пошаговые инструкции .
#cloud-config
bootcmd:
- echo 'ssh-rsa AAAAB3Nz...' > /root/.ssh/authorized_keys
Я попробовал ниже шаги, и это работало без остановки экземпляра. Мое требование было - поскольку я изменил свою клиентскую машину, старый файл .pem не позволял мне войти в экземпляр ec2.
Вы увидите ваши старые ключи в этом файле.
ssh-keygen -f YOUR_PEM_FILE.pem -y Будет сгенерирован ключ. Добавьте ключ к ~ / .ssh / authorized_keys, открытому на шаге # 1. Нет необходимости удалять старый ключ.
С консоли AWS создайте новую пару ключей. Сохраните это в своей новой машине. Переименуйте его в старый файл pem - причина в том, что старый файл pem все еще связан с экземпляром ec2 в AWS.
Все сделано.
Я могу войти в AWS ec2 с моей новой клиентской машины.
У вас есть несколько вариантов замены ключа вашего экземпляра EC2.
Поскольку первый вариант можно легко найти в ответах или в выбранной вами поисковой системе, я хочу сосредоточиться на диспетчере систем.
Systems Manager
Automation
на левой стороне.Execute Automation
AWSSupport-TroubleshootSSH
(обычно это на последней странице)Вы можете найти больше информации в официальной документации AWS
Ответ Yegor256 сработал для меня, но я подумал, что просто добавлю несколько комментариев, чтобы помочь тем, кто не так хорош в установке дисков (как я!):
Amazon дает вам выбор того, что вы хотите назвать томом, когда вы присоединяете его. Вы должны использовать имя в диапазоне от / dev / sda - / dev / sdp. Более новые версии Ubuntu переименуют то, что вы там поместили, в / dev / xvd (x) или что-то в этом роде.
Поэтому я выбрал / dev / sdp в качестве имени для подключения в AWS, затем вошел на сервер и обнаружил, что Ubuntu переименовал мой том в / dev / xvdp1). Затем я должен был смонтировать диск - для меня я должен был сделать это так:
mount -t ext4 xvdp1 /mnt/tmp
Пройдя через все эти обручи, я смог получить доступ к своим файлам в / mnt / tmp
Это будет работать, только если у вас есть доступ к экземпляру, в котором вы хотите изменить / добавить ключ. Вы можете создать новую пару ключей. Или, если у вас уже есть пара ключей, вы можете вставить открытый ключ новой пары в файл author_keys на вашем экземпляре.
vim .ssh / authorized_keys
Теперь вы можете использовать закрытый ключ для этой пары и войти в систему.
Надеюсь это поможет.
Если вы не можете войти в виртуальную машину и удалили ключи ssh, а также можете изменить пару ключей вашего ec2, выполнив следующие шаги. Шаг за шагом 1) остановите свой экземпляр ec2. 2) сделать снимок виртуальной машины и хранилища. 3) при создании создайте новую виртуальную машину, выберите свой снимок и создайте виртуальную машину из своего снимка. 4) при создании ВМ загружает вашу пару ключей. 5) Как только ваша виртуальная машина UP UP, вы можете ssh с новой парой ключей, и ваши данные также вернутся.
Что ты можешь сделать...
Создайте новый профиль / роль экземпляра, к которому прикреплена политика AmazonEC2RoleForSSM.
Прикрепите этот профиль экземпляра к экземпляру.
Спасибо за советы ребята. Обязательно буду помнить о них, когда мне нужно отдохнуть парой ключей. Однако в интересах эффективности и лени я придумал кое-что еще:
Надеюсь, что это может быть полезно для вас и сэкономит ваше время, а также минимизирует количество седых волос, которые вы получаете от таких вещей :)