Изменить пару ключей для экземпляра ec2

Как изменить пару ключей для моего экземпляра ec2 в консоли управления AWS? Я могу остановить экземпляр, я могу создать новую пару ключей, но я не вижу никакой ссылки для изменения пары ключей экземпляра.

Ответ 1

Просто сделайте это: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-key-pairs.html#replacing-lost-key-pair

Вот что я сделал, благодаря сообщению блога Эрика Хаммонда:

  1. Остановить запуск экземпляра EC2
  2. Отсоедините громкость /dev/xvda1 (позвоните на громкость A) - см. Здесь
  3. Запустите новый экземпляр t1.micro EC2, используя мою новую пару ключей. Убедитесь, что вы создали его в той же подсети, иначе вам придется завершить экземпляр и создать его снова. - см. здесь
  4. Прикрепите том A к новому микро-экземпляру, например /dev/xvdf (или /dev/sdf)
  5. SSH к новому микро-экземпляру и установить громкость A в /mnt/tmp

    $ sudo mount/dev/xvdf1/mnt/tmp

  6. Скопируйте ~/.ssh/authorized_keys в /mnt/tmp/home/ubuntu/.ssh/authorized_keys

  7. Выйти
  8. Завершить микроэкземпляр
  9. Отсоедините от него громкость A
  10. Подключите громкость A к основному экземпляру как /dev/xvda
  11. Начать основной экземпляр
  12. Войдите как прежде, используя ваш новый файл .pem

Это.

Ответ 2

После запуска экземпляра нет способа изменить ключевую пару, связанную с экземпляром, на уровне метаданных, но вы можете изменить, какой ключ ssh вы используете для подключения к экземпляру.

На большинстве AMI есть процесс запуска, который загружает открытый ключ ssh и устанавливает его в файле .ssh/authorized_keys, чтобы вы могли использовать ssh в качестве этого пользователя с помощью соответствующего частного ssh-ключа.

Если вы хотите изменить ключ ssh, который вы используете для доступа к экземпляру, вам нужно будет отредактировать файл authorized_keys самого экземпляра и преобразовать его в новый открытый ssh ​​ключ.

Файл authorized_keys находится под подкаталогом .ssh под домашним каталогом пользователя, с которым вы входите. В зависимости от запущенного AMI это может быть в одном из:

/home/ec2-user/.ssh/authorized_keys
/home/ubuntu/.ssh/authorized_keys
/root/.ssh/authorized_keys

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

Пока вы думаете о ssh keypairs на EC2, я рекомендую загружать свой собственный открытый ssh ​​ключ в EC2 вместо того, чтобы Amazon генерировал для вас пару ключей.

Вот статья, которую я написал об этом:

Загрузка личных ключей ssh ​​в Amazon EC2
http://alestic.com/2010/10/ec2-ssh-keys

Это применимо только к новым экземплярам, ​​которые вы запускаете.

Ответ 3

Запустите эту команду после загрузки плеера AWS.

ssh-keygen -f YOURKEY.pem -y

Затем выгрузите вывод в authorized_keys.

Или скопируйте файл pem в экземпляр AWS и выполните следующие команды

chmod 600 YOURKEY.pem

а затем

ssh-keygen -f YOURKEY.pem -y >> ~/.ssh/authorized_keys

Ответ 4

Инструкция от поддержки AWS EC2:

  • Изменить имя входа в pem
  • перейдите в консоль EC2.
  • В разделе "СЕТЬ и БЕЗОПАСНОСТЬ" нажмите "Пара ключей". Нажмите "Создать пару ключей"
  • Дайте вашей новой паре ключей имя, сохраните файл .pem. Имя пара ключей будет использоваться для подключения к вашему экземпляру
  • Создайте соединение SSH с вашим экземпляром и сохраните его.
  • в PuttyGen, нажмите "Загрузить", чтобы загрузить файл .pem.
  • Отключите радиостанцию ​​SSH-2 RSA. Нажмите "Сохранить закрытый ключ" Появится предупреждение о всплывающем окне, нажмите "Да"
  • нажмите "Сохранить открытый ключ", чтобы создать открытый ключ. Это открытый ключ, который мы собираемся скопировать на ваш текущий экземпляр
  • Сохраните открытый ключ с новым именем пары ключей и с помощью расширение .pub
  • Откройте содержимое открытого ключа в блокноте
  • скопировать содержимое ниже "Комментарий:" import-openssh-key "и до  "---- END SSH2 PUBLIC KEY ----
    Примечание. Вам необходимо скопировать содержимое  как одна строка - удалить все новые строки
  • в подключенном экземпляре, откройте файл authorized_keys, используя  инструмент vi. Выполните следующую команду: vi.ssh/authorized_keys вы также должны увидеть исходный открытый ключ в файле
  • переместите курсор на файл в конец первого открытого ключа  content: введите "i" для вставки
  • в новой строке введите "ssh-rsa" и добавьте пробел перед вставкой  содержимое открытого ключа, пробела и имя .pem  файл (без .pem) Примечание. Вы должны получить строку с тем же форматом, что и предыдущая строка
  • нажмите клавишу Esc, а затем введите: wq!

это сохранит обновленный файл authorized_keys

теперь попробуйте открыть новый сеанс SSH для своего экземпляра, используя новый ключ pai

Когда вы подтвердите, что сможете использовать SSH в экземпляре, используя новую пару ключей, вы можете удалить файл .ssh/authorized_key и удалить старый ключ.

Ответ на замечание Шагги:

Если вы не можете подключиться к экземпляру (например, ключ поврежден), чем использовать консоль AWS для отсоединения тома (http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-detaching-volume.html) и снова подключите его к рабочему экземпляру, чем измените ключ на томе и верните его обратно в предыдущий экземпляр.

Ответ 5

Я заметил, что при управлении Elastic Beanstalk вы можете изменить активную пару ключей EC2. В разделе "Упругий фасоль"> "Конфигурация"> "Безопасность" выберите новый ключ из раскрывающейся группы ключей EC2. Вы увидите это сообщение, если вы уверены:

EC2KeyName: изменения в опции. Параметры EC2KeyName не вступят в силу немедленно. Каждый из существующих экземпляров EC2 будет заменен, и ваши новые настройки вступят в силу.

Мой экземпляр уже был прерван, когда я это сделал. Затем он был запущен, завершен и снова запущен. По-видимому, "замена" означает завершение и создание нового экземпляра. Если вы изменили свой загрузочный том, сначала создайте AMI, а затем укажите, что AMI в той же форме эластичного beanstalk> Configuration> Instances, что и пользовательский идентификатор AMI. Это также предупреждает о замене экземпляров EC2.

После того, как вы изменили свою пару ключей EC2 и пользовательский идентификатор AMI, и после просмотра предупреждений обоим, нажмите " Сохранить", чтобы продолжить.

Помните, что IP-адрес изменяется при повторном создании экземпляра, поэтому вам нужно будет получить новый IP-адрес с консоли EC2 для использования при подключении через SSH.

Ответ 6

Я прошел этот подход и через некоторое время смог заставить его работать. Отсутствие реальных команд сделало его жестким, но я понял это. ОДНАКО - гораздо более легкий подход был найден и протестирован вскоре после:

  • Сохраните свой экземпляр как AMI (перезагрузитесь или нет, предлагаю перезагрузить компьютер). Это будет работать только в случае поддержки EBS.
  • Затем просто запустите экземпляр из этого AMI и назначьте свой новый Keyfile.
  • Передвиньте свой эластичный IP (если применимо) к вашему новому экземпляру, и все готово.

Ответ 7

Если следовать приведенным ниже шагам, это сэкономит много времени и не будет необходимости останавливать работающий экземпляр.

  1. Запустите новый экземпляр t1.micro EC2, используя новую пару ключей. Убедитесь, что вы создали его в той же подсети, в противном случае вам придется завершить экземпляр и создать его снова.
  2. SSH к новому экземпляру micro и скопируйте содержимое ~/.ssh/authorized_keys где-нибудь на вашем компьютере.
  3. Войдите в основной экземпляр со старым ключом ssh.
  4. Скопируйте и замените содержимое файла из пункта 2 в ~/.ssh/authorized_keys
  5. Теперь вы можете войти снова только с новым ключом. Старый ключ больше не будет работать.

Вот и все. Наслаждайтесь :)

Ответ 8

Я считаю, что самый простой подход заключается в следующем:

  1. Создать AMI-образ существующего экземпляра.
  2. Запустите новый экземпляр EC2, используя образ AMI (созданный на шаге 1) с новой парой ключей.
  3. Войдите в новый экземпляр EC2 с новым ключом.

Ответ 9

Если вы используете платформу ElasticBeanstalk, вы можете изменить ключи, выбрав:

  • Панель эластичных бобовых панелей
  • Конфигурация
  • Экземпляры (cog top-right)
  • Клавиша EC2

Это завершает текущий экземпляр и создает новый с выбранными ключами/настройками.

Ответ 10

Самое простое решение - скопировать содержимое

~/.ssh/id_rsa.pub

в ваш экземпляр AWS authorized_keys по адресу

~/.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 [email protected] -i private_key.pem

Ответ 11

Вам не нужно вращать корневое устройство и изменять открытый ключ 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 после первого перезапуска. Узнайте больше о пользовательских данных при запуске.

Ответ 12

Я пробовал следующие шаги, и он работал, не останавливая экземпляр. Моим требованием было - по мере того, как я изменил свою клиентскую машину, старый .pem файл не разрешил мне входить в экземпляр ec2.

  • Войдите в экземпляр ec2, используя старый файл .pem со старой машины. Открыть ~/.ssh/authorized_keys

Вы увидите свои старые ключи в этом файле.

  1. ssh-keygen -f YOUR_PEM_FILE.pem -y Он будет генерировать ключ. Добавьте ключ к ~/.ssh/authorized_keys, открытый в шаге # 1. Нет необходимости удалять старый ключ.

  2. С консоли AWS создайте новую пару ключей. Сохраните его на новой машине. Переименуйте его в старый файл pem - причина - старый файл pem по-прежнему связан с экземпляром ec2 в AWS.

Все сделано.

Я могу войти в AWS ec2 с моей новой клиентской машины.

Ответ 13

У вас есть несколько вариантов замены ключа вашего экземпляра EC2.

  1. Вы можете заменить ключ вручную в файле .ssh/authorized_keys. Однако для этого требуется, чтобы у вас был доступ к экземпляру или тому, если он не зашифрован.
  2. Вы можете использовать AWS Systems Manager. Это требует наличия установленного агента.

Поскольку первый вариант можно легко найти в ответах или в выбранной вами поисковой системе, я хочу сосредоточиться на диспетчере систем.

  1. Откройте Systems Manager сервисных Systems Manager
  2. Нажмите на Automation на левой стороне.
  3. Нажмите на Execute Automation
  4. Выберите AWSSupport-TroubleshootSSH (обычно это на последней странице)

Вы можете найти больше информации в Официальной Документации AWS

Ответ 14

Ответ Yegor256 сработал у меня, но я подумал, что просто добавлю некоторые комментарии, чтобы помочь тем, кто не очень хорош в установке дисков (например, я!):

Amazon дает вам выбор того, что вы хотите назвать томом при его прикреплении. Вы используете имя в диапазоне от /dev/sda -/dev/sdp Новые версии Ubuntu затем переименуют то, что вы там добавили, в /dev/xvd (x) или что-то в этом роде.

Итак, для меня я выбрал /dev/sdp как имя имя монтирования в AWS, затем я зашел на сервер и обнаружил, что Ubuntu переименовал мой том в /dev/xvdp 1). Затем мне пришлось подключить диск - для меня я должен был сделать это вот так:

mount -t ext4 xvdp1 /mnt/tmp

После перескакивания всех этих обручей я мог получить доступ к моим файлам в/mnt/tmp

Ответ 15

Это будет работать только в том случае, если у вас есть доступ к экземпляру, который вы хотите изменить/добавить ключ. Вы можете создать новую пару ключей. Или, если у вас уже есть пара ключей, вы можете вставить открытый ключ новой пары в файл authorized_keys вашего экземпляра.

vim.ssh/authorized_keys

Теперь вы можете использовать закрытый ключ для этой пары и войти в систему.

Надеюсь, что это поможет.

Ответ 16

Моя проблема была, я попробовал с IP а не с публичным DNS. Затем я попытался с public DNS и его решена

Ответ 17

если вы не можете войти в виртуальную машину и удалили ключ ssh, а также можете изменить пару ключей вашего ec2, выполнив следующие шаги. Иди шаг за шагом 1) остановите ваш экземпляр ec2. 2) сделать снимок виртуальной машины и хранилища. 3) при создании создайте новую виртуальную машину, выберите свой снимок и создайте виртуальную машину из своего снимка. 4) при создании ВМ загружает вашу пару ключей. 5) Как только ваша виртуальная машина UP UP, вы можете ssh с новой парой ключей, и ваши данные также вернутся.