Чи можу я ввести SSH у свій серверний екземпляр Amazon EC2, якщо у мене немає .pem-файлу з моменту створення екземпляра?


10

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

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

Відповіді:


26

Якщо коротко: так, можна, але не без якоїсь роботи.

Вам потрібно буде зробити наступне:

(Для цих кроків припустімо, що машина, з якою у вас виникли проблеми з підключенням, називається server-01.)

Спочатку перед тим, як розпочати ці кроки, зробіть знімок свого сервера.

  1. Запустіть новий, тимчасовий екземпляр. Назвіть це сервер-02.
  2. Зупинка сервера-01. Не припиняйте, просто припиніть.
  3. Від'єднайте кореневий ( /) EBS-том із сервера-01 та приєднайте його до сервера-02 як, скажімо /dev/sdb.
  4. Вхід на сервер-02 і виконати команду: $ mkdir /mnt/temp && mount /dev/sdb /mnt/temp. Це дозволить встановити кореневий розділ сервера-01 у межах (тимчасового) сервера-02.
  5. Тепер ви маєте можливість: $ vi /home/<user>/.ssh/authorized_keysта скопіювати / вставити у свій відкритий ключ. Після цього збережіть і закрийте файл.
  6. Тепер запустіть: $ cd / && umount /mnt/tempвимкнути кореневий розділ server-01 з сервера-02.
  7. Тепер просто від’єднайте цей об'єм із сервера-02, приєднайте його назад до сервера-01 та запустіть сервер-01. Коли він запускається, ви зможете знову запустити ssh.

2
Просто для додання цієї чудової відповіді я знайшов цю публікацію в блозі, яка переглядає це з командного рядка. alestic.com/2011/02/ec2-fix-ebs-root
Ерік

0

Ще одна порада, перш ніж хтось спробує відповісти EEAA ,

Якщо ви не виконали команду iptables saveабо iptables-saveкоманду для збереження своїх конфігурацій, просто перезавантажте сервер. Цитуючи цю відповідь на AskUbuntu , я дізнався, що iptablesзберігає ваші конфігурації в самій ОЗУ, якщо ви явно не збережете її у файли конфігурації.

Екземпляри EC2 можна легко перезавантажити з панелі керування EC2 або aws-cli


Гм, це виглядає як відповідь на інше запитання, помилково розміщене тут. У цьому питанні немає нічого про брандмауер / iptables.
kubanczyk

Моя погана, ця відповідь стосується того, коли весь трафік блокується на сервері, якщо всі IP-адреси заблоковані. Дайте мені знати, чи потрібно його зняти.
retr0
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.