Я случайно включил UFW на своем экземпляре Debian Google Cloud Compute, и, к сожалению, порт 22 сейчас заблокирован. Я пробовал всеми способами проникнуть внутрь виртуальной машины, но не смог.
Я пытаюсь получить доступ через последовательный порт, но он запрашивает у меня пользователя и пароль, которые никогда не устанавливались.
Кто-нибудь знает, что мне делать?
Этот ответ показывает два метода решения этой проблемы.
Первый способ - создать сценарий запуска, отключающий UFW. Второй метод подключает загрузочный диск к другому экземпляру и изменяет файл /etc/ufw/ufw.conf
Способ 1:
Шаг 1:
Войдите в Google Cloud Console. Перейдите в Compute Engine -> Экземпляры виртуальных машин. Щелкните свой экземпляр. Щелкните по кнопке Edit.
Шаг 2:
Прокрутите вниз до раздела «Пользовательские метаданные». Для ключа введите startup-script
. В поле Value введите:
#! /bin/bash
/usr/sbin/ufw disable
Нажмите кнопку Сохранить
Шаг 3:
Перезагрузите свой экземпляр. Во время перезагрузки запустится сценарий запуска, отключающий брандмауэр UFW. Войдите в свой экземпляр, используя SSH.
Шаг 4:
Повторите шаг №2, но на этот раз удалите сценарий запуска. В противном случае брандмауэр будет отключаться при каждой загрузке вашего экземпляра.
Способ 2:
ШАГ 1:
Завершите работу вашего экземпляра с проблемой UFW. Войдите в Google Cloud Console. Перейдите в Compute Engine -> экземпляры виртуальных машин. Щелкните свой экземпляр и запишите имя «Загрузочного диска». Это будет первый диск в разделе «Загрузочный диск и локальные диски».
ШАГ 2:
Прежде чем делать что-либо, создайте снимок загрузочного диска. Пока еще в Compute Engine -> Disk. Щелкните загрузочный диск. Щелкните "СОЗДАТЬ СНИМКУ".
ШАГ 3:
Создайте новый экземпляр в той же зоне. Микроэкземпляр будет работать.
ШАГ 4:
Откройте приглашение Cloud Shell (это также работает с вашего рабочего стола, если установлен gcloud). Выполните эту команду. Замените NAME именем вашего экземпляра (неработающая система), а DISK - именем загрузочного диска, а ZONE - зоной, в которой находится система:
gcloud compute instance detach-disk NAME --disk=DISK --zone=ZONE
Убедитесь, что предыдущая команда не сообщила об ошибке.
ШАГ 5:
Теперь мы прикрепим этот диск к новому экземпляру, который вы создали.
Перед подключением второго диска убедитесь, что экземпляр восстановления запущен. Иногда экземпляр может запутаться, с какого диска загружаться, если загрузочным является более одного диска.
Перейдите в Compute Engine -> Экземпляры виртуальных машин. Щелкните свой экземпляр. Щелкните Редактировать. В разделе «Дополнительные диски» нажмите «Добавить элемент». В качестве имени введите / выберите диск, который вы отсоединили от сломанного экземпляра. Щелкните Сохранить.
ШАГ 6:
SSH в ваш новый экземпляр с подключенными обоими дисками.
ШАГ 7:
Внимательно выполните следующие действия. Второй диск мы смонтируем в корневую файловую систему. Затем измените содержимое /mnt/repair/etc/ufw/ufw.conf, чтобы отключить брандмауэр.
ENABLED=yes
к ENABLED=no
ШАГ 8:
Теперь выполните процедуру в обратном порядке, переместите второй диск обратно в исходный экземпляр и повторно подключите его, используя команду ниже. Затем запустите свой экземпляр и подключитесь через SSH.
Примечание. Чтобы повторно подключить загрузочный диск, вы должны использовать gcloud с параметром -boot.
gcloud beta compute instances attach-disk NAME --disk=DISK --zone=ZONE --boot