it-swarm.com.ru

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

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

322
Michael Chen

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

Вот и все.

411
yegor256

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

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

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

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

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

163
Eric Hammond

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

Инструкция от поддержки 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. переместите курсор на файл до конца вашего первого открытого ключа содержание: введите «я» для вставки
  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 ) и подключите его к рабочему экземпляру, затем измените ключ на томе и снова подключите его к предыдущему экземпляру.

46
Elia Weiss

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

33
Mark Berry

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

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

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

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

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

13
vinay saini

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

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

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

8
Vaelyr

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

  1. Запустите новый экземпляр EC2, используя образ AMI (из шага 1) с новой парой ключей.
  2. Войдите в новый экземпляр EC2 с новым ключом.
  3. Login to new EC2 instance with new key.
5
Sergey

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

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

Я попробовал ниже шаги, и это работало без остановки экземпляра. Мое требование было - поскольку я изменил свою клиентскую машину, старый файл .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 с моей новой клиентской машины.

2
Mr. Bordoloi

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

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

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

mount -t ext4 xvdp1 /mnt/tmp

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

1
Ryan

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

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

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

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

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

0
Hendric

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

vim .ssh/authorized_keys

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

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

0
skd