Мне был предоставлен доступ к консоли AWS к учетной записи с двумя запущенными экземплярами, которую я не могу закрыть (в работе). Однако я хотел бы получить SSH-доступ к этим экземплярам. Можно ли создать новую пару ключей и применить ее к экземплярам, чтобы я мог использовать SSH? Получить существующий файл pem для пары ключей, в которой были созданы экземпляры, в настоящее время не вариант.
Если это невозможно, есть ли другой способ, которым я могу попасть в инстансы?
amazon-web-services
authentication
ssh
amazon-ec2
permissions
Крис Вагнер
источник
источник
ssh-add
должен делать то, что вам нужно.Ответы:
Вы не можете применить пару ключей к работающему экземпляру. Вы можете использовать только новую пару ключей для запуска нового экземпляра.
Для восстановления, если это загрузочный AMI EBS, вы можете остановить его, сделать снимок тома. Создайте новый том на его основе. И сможете использовать его снова, чтобы запустить старый экземпляр, создать новый образ или восстановить данные.
Хотя данные при временном хранении будут потеряны.
Из-за популярности этого вопроса и ответа я хотел получить информацию в ссылке, которую Родни разместил в своем комментарии.
Кредит идет на Эрика Хаммонда за эту информацию .
Исправление файлов в корневом томе EBS экземпляра EC2
Вы можете просматривать и редактировать файлы на корневом томе EBS в экземпляре EC2, даже если вы находитесь в такой катастрофической ситуации, как:
На физическом компьютере, сидящем за вашим столом, вы можете просто загрузить систему с компакт-диска или USB-накопителя, смонтировать жесткий диск, проверить и исправить файлы, а затем перезагрузить компьютер, чтобы вернуться к работе.
Однако удаленный экземпляр EC2 кажется удаленным и недоступным, когда вы находитесь в одной из этих ситуаций. К счастью, AWS предоставляет нам возможности и гибкость для возможности восстановления системы, подобной этой, при условии, что мы запускаем загрузочные экземпляры EBS, а не хранилище экземпляров.
Подход в EC2 несколько похож на физическое решение, но мы собираемся переместить и смонтировать неисправный «жесткий диск» (корневой том EBS) в другой экземпляр, исправить его, а затем переместить обратно.
В некоторых ситуациях может быть проще запустить новый экземпляр EC2 и выбросить плохой, но если вы действительно хотите исправить свои файлы, вот подход, который работал для многих:
Настроить
Укажите исходный экземпляр (A) и том, содержащий поврежденный корневой том EBS, с файлами, которые вы хотите просмотреть и отредактировать.
Определите второй экземпляр EC2 (B), который вы будете использовать для исправления файлов на исходном томе EBS. Этот экземпляр должен работать в той же зоне доступности, что и экземпляр A, чтобы к нему можно было подключить том EBS. Если у вас еще нет экземпляра, запустите временный.
Остановите поврежденный экземпляр A (ожидая, пока он полностью остановится), отсоедините корневой том EBS от экземпляра (ожидая его отсоединения), затем подключите том к экземпляру B на неиспользуемом устройстве.
ssh к экземпляру B и смонтируйте том, чтобы вы могли получить доступ к его файловой системе.
Почини это
На этом этапе вся корневая файловая система из экземпляра A доступна для просмотра и редактирования в / vol-a на экземпляре B. Например, вы можете:
Примечание. Идентификаторы в этих двух экземплярах могут не совпадать, поэтому будьте осторожны, если вы создаете, редактируете или копируете файлы, принадлежащие пользователям без полномочий root. Например, ваш пользователь mysql в экземпляре A может иметь тот же UID, что и ваш пользователь postfix в экземпляре B, что может вызвать проблемы, если вы укажете файлы с одним именем, а затем переместите том обратно на A.
Заворачивать
Когда вы закончите и будете довольны файлами в / vol-a, размонтируйте файловую систему (все еще в экземпляре-B):
Теперь вернитесь в свою систему с помощью ec2-api-tools, продолжайте перемещать том EBS обратно в его исходный экземпляр A и начните его снова:
Надеемся, что вы исправили проблему, экземпляр A работает просто отлично, и вы можете выполнить то, что изначально намеревались сделать. Если нет, возможно, вам придется продолжать повторять эти шаги, пока он не заработает.
Примечание. Если у вас был Elastic IP-адрес, назначенный экземпляру A, когда вы остановили его, вам нужно будет повторно связать его после повторного запуска.
Помните! Если ваш экземпляр B был временно запущен только для этого процесса, не забудьте прекратить его сейчас.
источник
Хотя вы не можете напрямую добавить пару ключей к работающему экземпляру EC2, вы можете создать пользователя linux и создать для него новую пару ключей, а затем использовать его, как если бы вы использовали исходную пару ключей пользователя.
В вашем случае вы можете попросить владельца экземпляра (который его создал) сделать следующее. Таким образом, владелец экземпляра не должен делиться с вами своими собственными ключами, но вы все равно сможете использовать ssh в этих экземплярах. Эти шаги были первоначально опубликованы Utkarsh Sengar (aka. @Zengr ) на http://utkarshsengar.com/2011/01/manage-multiple-accounts-on-1-amazon-ec2-instance/ . Я сделал только несколько небольших изменений.
Шаг 1: войдите в систему по умолчанию «ubuntu» пользователь :
Шаг 2: создайте нового пользователя, мы назовем нашего нового пользователя «Джон» :
Установите пароль для «john»:
Добавить «Джон» в список sudoer с помощью:
.. и добавьте следующее в конец файла:
Хорошо! Мы создали нашего нового пользователя, теперь вам нужно сгенерировать файл ключа, который будет необходим для входа в систему, как у нас в my_orin_key.pem на шаге 1.
Теперь выйдите и вернитесь в Ubuntu из-под рута.
Шаг 3: создание открытого и закрытого ключей :
Введите пароль, который вы создали для «john» на шаге 2. Затем создайте пару ключей. Помните, что пароль для пары ключей должен содержать не менее 4 символов.
На предыдущем этапе john - это созданный нами пользователь, а ubuntu - это группа пользователей по умолчанию.
Шаг 4: теперь вам просто нужно скачать ключ под названием «Джон» . Я использую scp для загрузки / выгрузки файлов из EC2, вот как вы можете это сделать.
Вам все равно нужно будет скопировать файл, используя пользователя Ubuntu , поскольку у вас есть только ключ для этого имени пользователя. Итак, вам нужно переместить ключ в папку Ubuntu и перейти на 777.
Теперь зайдите в терминал локальной машины, где у вас есть файл my_orig_key.pem, и сделайте так:
Приведенная выше команда скопирует ключ «john» в текущий рабочий каталог на вашем локальном компьютере. После того, как вы скопировали ключ на свой локальный компьютер, вы должны удалить «/ home / ubuntu / john», так как это закрытый ключ.
Теперь одна ваша локальная машина chmod john до 600.
Шаг 5: время проверить ваш ключ :
Таким образом, вы можете настроить несколько пользователей для использования одного экземпляра EC2!
источник
На локальном компьютере запустите команду:
После выполнения этой команды будет создан файл, оканчивающийся на * .pub. Скопируйте содержимое этого файла.
На машине Amazon отредактируйте ~ / .ssh / authorized_keys и вставьте содержимое файла * .pub (и сначала удалите любое существующее содержимое).
Затем вы можете использовать SSH, используя другой файл, созданный с помощью команды ssh-keygen (закрытый ключ).
источник
ssh-rsa AAAAB3NzaC1yc2EA...DsGt66 my-key-pair
Это случилось со мной ранее (у меня не было доступа к экземпляру EC2, который кто-то создал, но у него был доступ к веб-консоли AWS), и я написал в блоге ответ: http://readystate4.com/2013/04/09/aws-gaining- SSH-доступ к ан-ec2 инстанции, что вы потеряли-доступ-к /
По сути, вы можете отсоединить диск EBS, подключить его к EC2, к которому у вас есть доступ. Добавьте ключ SSH к
~ec2-user/.ssh/authorized_keys
этому подключенному диску. Затем верните его на старый экземпляр EC2. пошаговая ссылка с помощью Amazon AMI.Нет необходимости делать снимки или создавать новый клонированный экземпляр.
источник
В моем случае я использовал эту документацию, чтобы связать пару ключей с моим экземпляром Elastic Beanstalk
Настройка экземпляров сервера Amazon EC2 с помощью Elastic Beanstalk
источник
Вы можете просто добавить новый ключ к экземпляру с помощью следующей команды:
Вы можете настроить domain_alias в ~ / .ssh config
источник
Я не нашел простой способ добавить новую пару ключей через консоль, но вы можете сделать это вручную.
Просто вставьте ssh в вашу коробку EC2 с существующей парой ключей. Затем отредактируйте ~ / .ssh / authorized_keys и добавьте новый ключ в новой строке. Выходите и по ssh через новую машину. Успех!
источник
stackoverflow.com/questions/7881469/change-key-pair-for-ec2-instance
источник
Для сред Elasticbeanstalk вы можете применить пару ключ-значение к работающему экземпляру следующим образом:
источник
На самом деле вы можете добавить пару ключей через страницу конфигурации эластичного бобового стебля. Затем он перезапускает ваш экземпляр для вас, и все работает.
источник