修复损坏 /etc/network/interfaces
Fixing broken /etc/network/interfaces
我在 Google Compute Engine 上有一个 Ubuntu 16.04 虚拟机。
我正在向 etc/network/interfaces 添加一些命令,然后重新启动虚拟机以测试它们。它们显然是不正确的,我无法再通过 ssh 进入我的虚拟机。有没有一种方法可以在没有 ssh 的情况下编辑 /etc/network/interfaces 文件来恢复我的虚拟机?
此答案基于一篇文章 Resolving getting locked out of a Compute Engine。进行了较小的更正,并针对 Debian 9 映像检查了解决方案。
与裸机一样,如果您可以物理访问它,您就有机会访问操作系统。 GCE VM 也是如此:因为您可以访问 VM 配置,所以您可以进入。
1.打开VM实例详情:
GCP Console => Compute Engine => VM instances => instance_name
2. 停止 VM 实例
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. 按回车键。出现登录提示。输入用户名 (user3
) 和密码 (password
)。您将到达 bash shell。登录用户是"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:~#
我在 Google Compute Engine 上有一个 Ubuntu 16.04 虚拟机。
我正在向 etc/network/interfaces 添加一些命令,然后重新启动虚拟机以测试它们。它们显然是不正确的,我无法再通过 ssh 进入我的虚拟机。有没有一种方法可以在没有 ssh 的情况下编辑 /etc/network/interfaces 文件来恢复我的虚拟机?
此答案基于一篇文章 Resolving getting locked out of a Compute Engine。进行了较小的更正,并针对 Debian 9 映像检查了解决方案。
与裸机一样,如果您可以物理访问它,您就有机会访问操作系统。 GCE VM 也是如此:因为您可以访问 VM 配置,所以您可以进入。
1.打开VM实例详情:
GCP Console => Compute Engine => VM instances => instance_name
2. 停止 VM 实例
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. 按回车键。出现登录提示。输入用户名 (user3
) 和密码 (password
)。您将到达 bash shell。登录用户是"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:~#