有点傻。在我的 Google Compute Engine (GCE) 实例上,我进入并更改了 sshd_config 以侦听另一个端口(我经常这样做)......但我在注销之前没有进行测试。还有一个错字。所以现在我无法通过 ssh 登录,因为配置被搞砸了,sshd 甚至无法启动。(我可以使用不同的配置文件启动 sshd,作为非 root 用户,但它给了我一个“无法加载主机密钥”,正如预期的那样,可能没有权限。)
使用你说的 GCE 串行控制台?啊...但是我可以登录的用户都不是 sudoers。(我还有两个sudo'er,但是密码不起作用,不知道为什么。我写错了?)
所以我有密码的用户(非root)访问,并且有root(sudo'er)用户的密钥,我只是没有办法通过串行控制台登录?(有没有办法让控制台识别我的密钥而不是密码?)
这对安全性有好处,我不能用我有限的知识在 5 分钟内解决这个问题,但是我可以利用我必须用 root 重新获得的东西吗?我可以访问 Google Compute Engine 控制台和用户等中的项目,我只是在这个实例上从命令行切断了自己。
如果它是一台物理机器,我会坚持使用可启动的 USB 发行版,只需编辑配置文件并重新启动。
有什么建议么?
谢谢。
要编辑或检查您无权访问的 VM 根磁盘中的配置文件,请按照本文档的“检查实例而不关闭它”部分中的步骤操作。
步骤总结:
1)创建一个可以通过 SSH 访问的临时 VM。
2)创建失败的根磁盘的副本(这必须来自快照)。您实际上可以删除原始虚拟机并保留磁盘(-keep-disks=all),但我宁愿使用副本。
3)将磁盘副本附加到临时 VM 并挂载您要检查的磁盘。
4) 修改配置文件。分离修改后的磁盘并使用此磁盘旋转一个新 VM。