Могу ли я использовать SSH в своем экземпляре сервера Amazon EC2, если у меня нет файла .pem с момента создания экземпляра?

10

Я работаю с некоторыми запущенными и работающими серверами Amazon EC2, и мне нужно подключиться по SSH к серверам. У меня нет ключей, сгенерированных при первой настройке серверов (кто-то другой сделал это задолго до того, как я сюда попал). Могу ли я попасть на серверы без файлов ключей?

FWIW Я уже много чего пробовал в SSH, включая создание новых пар ключей на приборной панели EC2, и, похоже, ничего не работает. Этот пост поддержки Amazon AWS и этот ответ, похоже, указывают на то, что мне не повезло, если я не хочу создать AMI для моего текущего сервера, а затем использовать его для создания экземпляра всего нового экземпляра сервера EC2 (просто для создания файла .pem. в то время). Это действительно единственный способ, которым я могу попасть в коробку в этот момент ?!

Эрик
источник

Ответы:

26

Короче говоря: да, можно, но не без работы.

Вам нужно будет сделать следующее:

(Для этих шагов предположим, что компьютер, к которому у вас возникают проблемы с подключением, называется server-01.)

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

  1. Начать новый, временный экземпляр. Назовите это server-02.
  2. Стоп сервер-01. Не прекращай это, просто прекрати это.
  3. Un прикрепить корень ( /) EBS тома с сервера-01, и прикрепить его к серверу-02 , как, скажем /dev/sdb.
  4. Вход на сервер-02 и выполнить команду: $ mkdir /mnt/temp && mount /dev/sdb /mnt/temp. Это смонтирует корневой раздел server-01 внутри (временного) server-02.
  5. Теперь вы должны быть в состоянии: $ vi /home/<user>/.ssh/authorized_keysи скопировать / вставить в ваш открытый ключ. Когда вы это сделаете, сохраните и закройте файл.
  6. Теперь запустите: $ cd / && umount /mnt/tempотключить корневой раздел server-01 от server-02.
  7. Теперь просто отсоедините этот том от сервера-02, подключите его обратно к серверу-01 и запустите сервер-01. Когда он запустится, вы сможете снова войти в систему.
EEAA
источник
2
Просто чтобы добавить к этому превосходному ответу, я нашел этот пост в блоге, в котором рассказывается, как сделать это из командной строки. alestic.com/2011/02/ec2-fix-ebs-root
Эрик
0

Просто совет, прежде чем кто-либо попробует ответ ЕЕА ,

Если вы не запустили команду iptables saveor iptables-saveдля сохранения ваших настроек, просто перезапустите сервер. Цитируя этот ответ в AskUbuntu , я узнал, что iptablesваши конфигурации сохраняются в самой оперативной памяти, если вы явно не сохраните их в файлах конфигурации.

Экземпляры EC2 можно легко перезагрузить с панели инструментов EC2 или aws-cli

retr0
источник
Хм, это похоже на ответ на другой вопрос, ошибочно размещенный здесь. В этом вопросе нет ничего о брандмауэре / iptables.
Кубанчик
Мой плохой, этот ответ для того, когда весь трафик блокируется на сервер, если заблокированы все IP-адреса. Дайте мне знать, если это нужно снять.
retr0