Изменить пару ключей для экземпляра ec2 - PullRequest
347 голосов
/ 25 октября 2011

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

Ответы [ 16 ]

435 голосов
/ 02 августа 2012

Просто сделайте это: 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 файл

Вот и все.

169 голосов
/ 25 октября 2011

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

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

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

Файл authorized_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

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

69 голосов
/ 17 сентября 2014

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

Инструкция от службы поддержки 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!

Это сохранит обновленный файл авторизованных ключей

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

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

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

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

35 голосов
/ 30 мая 2014

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

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

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

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

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

30 голосов
/ 17 апреля 2013

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

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

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

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

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

8 голосов
/ 03 ноября 2015

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

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

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

7 голосов
/ 04 июля 2016

Я полагаю, что самый простой подход:

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

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

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