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


408

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


1
Я выполнил действия, указанные в этом видео, и это сработало youtube.com/watch?v=OF2AOekW4IE
Джонатан Ноласко Барриентос

Ответы:


492

Этот ответ полезен в том случае, если у вас больше нет SSH-доступа к существующему серверу (т.е. вы потеряли свой закрытый ключ).

Если у вас все еще есть доступ по SSH, используйте один из ответов ниже.

https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-key-pairs.html#replacing-lost-key-pair

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

  1. Остановите работающий экземпляр EC2
  2. Отключите его /dev/xvda1громкость (назовем это томом А) - смотрите здесь
  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файл

Вот и все.


6
только что спас мою задницу, ты легенда!
Garry Welding

8
mkdir /mnt/tmpа затем mount /dev/xvdf /mnt/tmpдолжен сделать трюк для # 5. И не забывайте, что шаг 13. вероятно rm ~/.ssh/known_hostsна коробках, из которых вы подключаетесь.
brandonscript

21
Это так вонючее ... Прежде всего, посмотрите ответ Эрика Хаммонда ниже. Второе: ответ Пэт Макб. Они выполняют на самом деле то же самое, но не тратят 1 час своего времени на веселый обходной путь. PS. См. Также stackoverflow.com/a/24143976/547223
kgadek

3
Я написал действительно конкретные инструкции, основанные на этом ответе, но по сути это та же идея - gist.github.com/tamoyal/1b7ec4d3871b343d353d . Как заметил @kgadek, это немного грязно и отнимает много времени, но это отличный вариант, если вы заблокированы на сервере, на котором хотите изменить ключ, и если вы не хотите раскручивать копию этого сервера. Это занимает около 5-10 минут, а не час.
Тони

4
Ответы, опубликованные @Eric и @Pat, являются решениями для людей, которые просто хотят использовать другую пару ключей для своих экземпляров. Это не поможет пользователю, который каким-то образом потерял файл пары ключей. Не отключая громкость и не подключая ее к другому экземпляру, как бы вы получили контроль над этой громкостью? Не говоря уже о замене исходного .ssh/authorized_keysфайла.
Санджив

187

После запуска экземпляра невозможно изменить пару ключей, связанную с экземпляром, на уровне метаданных, но вы можете изменить ключ 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

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


Я тупо сделал эту ошибку, я имею в виду, что я отредактировал файл авторизованные_ключи и вышел из системы. Теперь не могу вернуться по ssh :(. Любое предложение по быстрому исправлению?
aatifh

11
aatifh: Вот статья, которую я написал о том, как выбраться из этой ситуации: alestic.com/2011/02/ec2-fix-ebs-root
Эрик Хаммонд,

@EricHammond Это может быть неуместно, но вы, кажется, знаете, как все это работает ... Я сегодня настроил экземпляр EC2 и получил .pemфайл закрытого ключа на моем Mac, но ssh -i key.pemне проходил аутентификацию (разрешение запрещено (publickey)). В консоли управления EC2 в разделе «Имя пары ключей» ничего не указано. Это тревожит меня. Как я могу установить это? На основе консоли управления создается впечатление, что ни одна из настроенных пар ключей не была назначена экземпляру!
Стивен Лу

1
@StevenLu: Да, темы комментариев - это не то место, где можно задавать новые вопросы. Попробуйте создать новый вопрос на serverfault.com (более подходящий для этой проблемы, чем stackoverflow).
Эрик Хаммонд,

4
Вот хорошая маленькая строчка для добавления вашего ключа. Это просто добавляет ваш обычный ключ публикации в дополнение к сгенерированному AWS, поэтому, если он не работает, вы не заблокируете себя: stackoverflow.com/a/5654728/193494
Кевин С.

78

Запустите эту команду после загрузки вашего 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

14
Это работает, только если у вас уже есть доступ к системе, верно? (вроде не потерял старый .pem файл).
Даниэль

5
Вы можете использовать> вместо >>, чтобы переопределить текущего пользователя вместо того, чтобы добавить его.
Адриан Лопес

Это правильный и самый простой ответ. Нет необходимости перезагружать, создавать новые экземпляры или монтировать диски. Просто получите .pem, сгенерируйте его и добавьте его в авторизованный_хост.
Spanky

я сделал это ssh-keygen -f YOURKEY.pem -y >> ~ / .ssh / authorized_keys, но sitll не может получить доступ к моему ec2 с помощью нового открытого ключа.
manukyanv07

Я запустил это, и мой локальный ключ не изменился.
Луис

50

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

  1. Изменить логин pem
  2. перейдите на консоль EC2
  3. В разделе СЕТЬ И БЕЗОПАСНОСТЬ нажмите на пару ключей Нажмите на кнопку Создать пару ключей
  4. Дайте вашей новой паре ключей имя, сохраните файл .pem. Имя пары ключей будет использоваться для подключения к вашему экземпляру
  5. Создайте SSH-соединение с вашим экземпляром и оставьте его открытым
  6. в PuttyGen, нажмите «Загрузить», чтобы загрузить ваш .pem файл
  7. Держите переключатель SSH-2 RSA установленным. Нажмите «Сохранить закрытый ключ». Появится всплывающее окно с предупреждением, нажмите «Да».
  8. также нажмите «Сохранить открытый ключ», чтобы создать открытый ключ. Это открытый ключ, который мы собираемся скопировать в ваш текущий экземпляр
  9. Сохраните открытый ключ с новым именем пары ключей и с расширением .pub
  10. Откройте содержимое открытого ключа в блокноте
  11. скопируйте содержимое ниже "Комментарий:" импортированный-openssh-ключ "и перед" ---- ПУБЛИЧНЫЙ КЛЮЧ КОНЕЦ SSH2 ----
    Примечание. Вам необходимо скопировать содержимое одной строкой - удалить все новые строки
  12. в подключенном экземпляре откройте файл author_keys, используя инструмент vi. Запустите следующую команду: vi .ssh / authorized_keys вы также должны увидеть оригинальный открытый ключ в файле
  13. переместите курсор на файл до конца первого содержимого открытого ключа: введите «i» для вставки
  14. в новой строке введите «ssh-rsa» и добавьте пробел перед вставкой содержимого открытого ключа, пробела и имени файла .pem (без .pem). Примечание - вы должны получить строку с тот же формат, что и в предыдущей строке
  15. нажмите клавишу Esc и введите: wq!

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

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

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

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

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


6
Должен быть лучший ответ

2
Что, если старый ключ поврежден, и вы не можете подключиться к экземпляру через putty, поскольку у вас нет старого файла ppk ???
Шегги

3
Что делать, если у вас нет доступа SSH, следовательно, эта проблема.
Джейден Лоусон

3
Джейден Лоусон, что если у вас нет подключения к интернету?
Элия ​​Вайс

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

38

Я заметил, что при управлении 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.


1
Теперь это в разделе «Безопасность» в конфигурации.
Будет ли Demaine

Спасибо @WillDemaine. В настоящее время не использую AWS, так что я верю вашему слову и одобряю редактирование!
Марк Берри

31

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

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

Это полностью сработало для меня после того, как я случайно удалил ~ / .ssh
morri

Я сделал то же самое, и это сработало, теперь я могу войти с новым pem. Но я все еще могу войти со старым pem. Так что теперь 2 pems действительны.
Виталий

К вашему сведению, это быстрый и простой метод графического интерфейса пользователя, который позволяет раскрутить новый EC2 с другим ключом, если он занят, но, поскольку @vitaly обнаружил, что старый ключ pem также действителен, нужно перейти в /home/ec2-user/.ssh/authorized_keys и удалить старый ключ pem из файла. Спасибо за быстрый способ смены ключа Pem, приятный и легкий, когда у меня нет времени.
Blu Towers

Это не сработало для меня. AWS продолжал говорить, что пароль был недоступен с другим сообщением, в котором говорилось, что если экземпляр был создан из AMI, он использует учетные данные родительского изображения.
Брейди

15

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

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

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


14

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

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

@Brady, что не работает вообще? сделать снимок? запускать экземпляр? авторизоваться?
Сергей

4
Я не уверен, является ли это изменение недавним или нет, но когда вы создаете AMI из экземпляра, которому уже назначен ключ, вам необходимо иметь этот ключ для входа в скопированное изображение AMI, независимо от того, есть ли Вы назначаете другую пару ключей во время создания.
Брейди

Это не решение, поскольку @Brady упоминает, что оно не работает.
Грег Сансом,

8

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

  • Эластичная панель Beanstalk
  • конфигурация
  • Экземпляры (в правом верхнем углу)
  • Пара ключей EC2

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


2
Это самый простой ответ здесь, если вы находитесь на ElasticBeanstalk.
Ювал Карми

2
Предупреждение! Это опасное решение. AWS также сбросит хранилище (т. Е. Виртуальный жесткий диск), подключенное к этому экземпляру (!!). Таким образом, вы должны отсоединить хранилище и после поднятия нового экземпляра снова подключить его вместо нового, поставляемого с новым экземпляром. Конечно, будет лучше, если это не зашифрованный том (и вы не потеряли его ключ ..)
JamesC

7

В этом вопросе заданы два сценария:

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 в целях безопасности.

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


2
Мне нравится это решение, потому что оно не требует от меня создания нового экземпляра с замороженным изображением AMI. Но способен ли этот метод изменить имя связанной пары ключей экземпляра EC2 на панели мониторинга EC2? @Parveen YADAV
зависимым

6

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

~/.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

4
Как я могу получить доступ, ~/.ssh/authorized_keysкогда я не могу даже экземпляр SSH AWS?
prayagupd

3
Я считаю, что ваша последняя строка неверна, вы сможете подключиться, только если у вас есть закрытый ключ. Ssh -i private_key.pem user@host.com. Если вы хотите, чтобы кто-то предоставил вам доступ к своему экземпляру, вы можете безопасно поделиться им с вами своим открытым ключом, и они могут добавить его в свои авторизованные ключи, чтобы предоставить вам доступ к экземпляру в качестве этого пользователя ...
code4cause

5

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


4
  • Создать новый ключ, например, используя PuTTY Key Generator
  • Остановить экземпляр
  • Задать пользовательские данные экземпляра для отправки открытого ключа на сервер
  • Начать экземпляр

Предупреждение: не забудьте снова очистить данные пользователя. В противном случае эта клавиша будет нажата при каждом запуске экземпляра. Пошаговые инструкции .

#cloud-config
bootcmd:
 - echo 'ssh-rsa AAAAB3Nz...' > /root/.ssh/authorized_keys

введите описание изображения здесь


1
Это официальный способ AWS сделать это, поэтому перейдите к @reto. aws.amazon.com/premiumsupport/knowledge-center/…
Беван,

3

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

  1. Войдите в экземпляр 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 с моей новой клиентской машины.


3

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

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

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

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

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


1

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

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

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

mount -t ext4 xvdp1 /mnt/tmp

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


в качестве комментария это следует добавить как комментарий, а не как ответ.
JDL

0

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

vim .ssh / authorized_keys

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

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


0

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


0

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


0

Что ты можешь сделать...

  1. Создайте новый профиль / роль экземпляра, к которому прикреплена политика AmazonEC2RoleForSSM.

  2. Прикрепите этот профиль экземпляра к экземпляру.

  3. Используйте SSM Session Manager для входа в экземпляр.
  4. Используйте keygen на вашем локальном компьютере, чтобы создать пару ключей.
  5. Вставьте открытую часть этого ключа в экземпляр, используя сеанс SSM.
  6. Прибыль.

0

Спасибо за советы ребята. Обязательно буду помнить о них, когда мне нужно отдохнуть парой ключей. Однако в интересах эффективности и лени я придумал кое-что еще:

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

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

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.