切断我自己的Google Cloud Engine SSH鼻子

有点愚蠢。 在我的Google计算引擎(GCE)实例中,我进入并更改了sshd_config来侦听另一个端口(我经常做的事情)…但是在注销之前我没有testing。 还有一个错字。 所以现在我不能通过SSHlogin,因为configuration被搞砸了,sshd甚至不会启动。 (我可以用一个不同的configuration文件启动sshd,作为一个非root用户,但它给了我一个“无法加载主机密钥”,正如所料,可能没有权限。

使用你说的GCE串口控制台? 啊…但是我可以login的用户都不是sudoers。 (我有两个sudo'er,但密码不工作,不知道为什么,我把它们写错了?)

所以我有用户(非root)访问密码,并有根(sudo'er)用户的密钥,我只是没有办法通过串行控制台login? (有没有办法让控制台识别我的密钥而不是密码?)

对于安全来说,这是好事,我不能用我有限的知识在5分钟内解决这个问题,但是我可以利用我必须以root身份重新获得的东西吗? 我有权访问Google Compute Engine控制台中的项目和用户等,我只是从命令行切断了这个实例。

如果它是一个物理机器,我会坚持在可启动的USB发行版,只需编辑configuration文件,然后重新启动。

有什么build议么?

谢谢。

要编辑或检查无权访问的虚拟机的根磁盘中的configuration文件,请按照“检查实例而不closures本文档 ”一节中的步骤操作。

步骤总结:

1) 创build一个你可以SSH进入的临时虚拟机。

2) 创build一个失败的根磁盘的副本 (这将不得不从一个快照)。 你实际上可以删除原来的虚拟机并保留磁盘(-keep-disks = all),但是我宁愿使用一个副本。

3) 将磁盘的副本附加到临时虚拟机,并挂载您想要检查的磁盘。

4)修改configuration文件。 分离修改后的磁盘并使用该磁盘旋转新的虚拟机。