Исправление неработающих / etc / network / interfaces - PullRequest
0 голосов
/ 28 апреля 2020

У меня виртуальная машина Ubuntu 16.04 на Google Compute Engine.

Я добавил некоторые команды в etc / network / interfaces и перезапустил vm, чтобы проверить их. Они были явно неверны, и я больше не могу s sh в мой виртуальный компьютер. Есть ли способ отредактировать файл / etc / network / interfaces без s sh, чтобы восстановить мой vm?

1 Ответ

1 голос
/ 28 апреля 2020

Этот ответ основан на статье Решение проблемы блокировки из вычислительного механизма . Небольшие исправления были внесены, и решение было проверено для образа Debian 9.

Как и в случае с голым металлом, если у вас есть физический доступ к нему, у вас есть шанс получить доступ к операционной системе. То же самое касается виртуальных машин GCE: поскольку у вас есть доступ к конфигурации виртуальных машин, вы можете войти внутрь.

1. Открыть сведения об экземпляре виртуальной машины:

GCP Console => Compute Engine => VM instances => instance_name

2. Остановить экземпляр виртуальной машины

3. Включите доступ к последовательной консоли и добавьте сценарий запуска, чтобы создать временного пользователя:

=> Edit =>  
  Enable connecting to serial ports = True 
  Custom metadata
    Key = startup-script
    Value = 
      useradd --groups "google-sudoers" user3
      echo "user3:password" | chpasswd
=> Save

4. Запустить экземпляр виртуальной машины.

5. После запуска подключитесь к консоли:

=> Connect to serial console

6. Нажмите Enter. Появится приглашение для входа. Введите имя пользователя (user3) и пароль (password). Вы попадете в оболочку bash. Зарегистрированный пользователь является членом группы "google-sudoers", поэтому он может действовать как пользователь root:

$ groups 
  user3 google-sudoers 
$ id 
  uid=1004(user3) gid=1005(user3) groups=1005(user3),1000(google-sudoers) 
$ sudo su - 
root@instance-2:~#
...