如何(重新)设置密码或设置单一用户模式进行串行控制台登录?

rjt*_*rjt 0 google-compute-engine google-cloud-platform

ssh键上的Borked网络配置只有谷歌计算引擎,现在我不能ssh.串口控制台提示输入密码,更新从不设置密码.更糟糕的是我没有看到如何通过单用户模式设置参数.

Dav*_*vid 5

如您所见,通过串行控制台连接需要设置用户名和密码.这必须提前完成,因此串行控制台现在无法帮助您.

以下是其他一些尝试:

修复GCE防火墙

如果您更改的防火墙只是GCE防火墙,则可以在不访问实例的情况下将其更改回来.只需添加防火墙规则,即可访问端口22.

重启你的实例

如果您使用iptables命令中断防火墙,则该规则可能不会在重新启动时保留.尝试从控制台重新启动您的实例,看看您是否可以访问.

修复磁盘的副本

这是最完整,最强大的修复方法,但也是最难的:

  1. 快照实例的磁盘,创建"orig-snapshot"
  2. 从"orig-snapshot"创建一个名为"fix-disk"的新磁盘.
  3. 使用debian或redhat映像创建一个名为"fix-instance"的新实例.
  4. 将"fix-disk"作为辅助磁盘附加到"fix-instance"
  5. SSH到"修复实例".
  6. 在"fix-instance"中,在/ mnt上安装"fix-disk".
  7. 然后,您可以访问/ mnt上的数据.如果您只想访问您的数据,这应该足够了.如果要修复磁盘,请继续...
  8. 如果您知道编辑的文件破坏了实例,请在/ mnt上编辑并修复它.
  9. 如果要在将来为串行控制台设置密码,请运行sudo chroot /mnt passwd.这将允许您设置密码.
  10. 卸载"修复磁盘".此时您可以删除"fix-instance",但请确保不要删除"fix-disk".
  11. 使用"fix-disk"创建一个新实例,因为它是启动盘.这个新实例将替换您的原始实例,但是您可以使用(8)和(9)中的修复.如果您需要保留相同的IP地址,则必须从旧实例移动它.