Сброс пароля сервера Linux EC2

Sep 11 2020

Невозможно войти на сервер EC2 ubuntu из-за проблемы с разрешением.

Проблема: на моем сервере EC2 ubuntu есть пользователь (root и ubuntu), и я использую его для входа в ubuntu с помощью ssh. По ошибке я изменил владельца домашнего каталога Ubuntu на root, а также отозвал все права доступа к каталогу для другого пользователя. Таким образом, домашний каталог пользователя (Ubuntu) имеет только разрешение RWX для root и никого другого. Теперь я не могу войти в ubuntu по SSH. Я предоставил файл .pem, но на этот раз я получаю запрос пароля независимо от файла .pem. Кажется, я напортачил.

Что пробовал:

  1. Пытался войти в систему с правами root с помощью ssh (не разрешено)
  2. Пытался войти в ubuntu с помощью ssh (спрашиваю пароль, потому что я считаю, что проблема с разрешением)
  3. Пытался взломать. Был запущен Wordpress, поэтому я поставил оболочку поверх сервера с помощью администратора. Я получил обратную оболочку, но не могу повысить привилегии для получения root.

Я буду очень признателен, если вы поможете мне войти на мой сервер / сбросить пароль / способ входа с панели инструментов AWS / или любым другим способом.

Ответы

PhilipCouling Sep 11 2020 at 22:25

Ой!

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

Если это был локальный компьютер, вы могли бы извлечь жесткий диск, вставить его на другую машину и сбросить пароль с другой машины. Несмотря на то, что это виртуальная машина, принцип аналогичен. Здесь есть решение аналогичной проблемы:https://stackoverflow.com/a/11776183/453851

Основной принцип заключается в том, что виртуальная машина EC2 использует «тома» в качестве жестких дисков. С помощью консоли AWS вы можете:

  • выключи свою виртуальную машину
  • отсоединить том
  • создать новую виртуальную машину (с собственным томом)
  • загрузить новую виртуальную машину
  • прикрепите старый том к новой виртуальной машине (как второй том)

Затем войдите в новую виртуальную машину и:

  • смонтировать старый том (на /mnt/)
  • chrootв смонтированную файловую систему ( chroot /mnt/ /bin/bash). Это даст вам командную строку, которая будет вести себя так, как если бы она работала внутри вашей старой виртуальной машины.
  • Измените любой пароль с помощью passwd
  • неисправность

Наконец, снова в консоли AWS:

  • отсоединить старый том
  • подключите его к старой виртуальной машине
  • загрузить старый vm
  • полностью удалить новую виртуальную машину (ВНИМАТЕЛЬНО УДАЛИТЬ ПРАВИЛЬНУЮ)