Как изменить пару ключей для моего экземпляра ec2 в консоли управления AWS? Я могу остановить экземпляр, я могу создать новую пару ключей, но я не вижу никакой ссылки для изменения пары ключей экземпляра.
Изменить пару ключей для экземпляра ec2
Ответ 1
Просто сделайте это: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-key-pairs.html#replacing-lost-key-pair
Вот что я сделал, благодаря сообщению блога Эрика Хаммонда:
- Остановить запуск экземпляра EC2
- Отсоедините громкость
/dev/xvda1
(позвоните на громкость A) - см. Здесь - Запустите новый экземпляр t1.micro EC2, используя мою новую пару ключей. Убедитесь, что вы создали его в той же подсети, иначе вам придется завершить экземпляр и создать его снова. - см. здесь
- Прикрепите том A к новому микро-экземпляру, например
/dev/xvdf
(или/dev/sdf
) -
SSH к новому микро-экземпляру и установить громкость A в
/mnt/tmp
$ sudo mount/dev/xvdf1/mnt/tmp
-
Скопируйте
~/.ssh/authorized_keys
в/mnt/tmp/home/ubuntu/.ssh/authorized_keys
- Выйти
- Завершить микроэкземпляр
- Отсоедините от него громкость A
- Подключите громкость A к основному экземпляру как
/dev/xvda
- Начать основной экземпляр
- Войдите как прежде, используя ваш новый файл
.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
Если следовать приведенным ниже шагам, это сэкономит много времени и не будет необходимости останавливать работающий экземпляр.
- Запустите новый экземпляр t1.micro EC2, используя новую пару ключей. Убедитесь, что вы создали его в той же подсети, в противном случае вам придется завершить экземпляр и создать его снова.
- SSH к новому экземпляру micro и скопируйте содержимое ~/.ssh/authorized_keys где-нибудь на вашем компьютере.
- Войдите в основной экземпляр со старым ключом ssh.
- Скопируйте и замените содержимое файла из пункта 2 в ~/.ssh/authorized_keys
- Теперь вы можете войти снова только с новым ключом. Старый ключ больше не будет работать.
Вот и все. Наслаждайтесь :)
Ответ 8
Я считаю, что самый простой подход заключается в следующем:
- Создать AMI-образ существующего экземпляра.
- Запустите новый экземпляр EC2, используя образ AMI (созданный на шаге 1) с новой парой ключей.
- Войдите в новый экземпляр 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
Вы увидите свои старые ключи в этом файле.
-
ssh-keygen -f YOUR_PEM_FILE.pem -y Он будет генерировать ключ. Добавьте ключ к ~/.ssh/authorized_keys, открытый в шаге # 1. Нет необходимости удалять старый ключ.
-
С консоли AWS создайте новую пару ключей. Сохраните его на новой машине. Переименуйте его в старый файл pem - причина - старый файл pem по-прежнему связан с экземпляром ec2 в AWS.
Все сделано.
Я могу войти в AWS ec2 с моей новой клиентской машины.
Ответ 13
У вас есть несколько вариантов замены ключа вашего экземпляра EC2.
- Вы можете заменить ключ вручную в файле .ssh/authorized_keys. Однако для этого требуется, чтобы у вас был доступ к экземпляру или тому, если он не зашифрован.
- Вы можете использовать AWS Systems Manager. Это требует наличия установленного агента.
Поскольку первый вариант можно легко найти в ответах или в выбранной вами поисковой системе, я хочу сосредоточиться на диспетчере систем.
- Откройте
Systems Manager
сервисныхSystems Manager
- Нажмите на
Automation
на левой стороне. - Нажмите на
Execute Automation
- Выберите
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 с новой парой ключей, и ваши данные также вернутся.