我意外地在我的Google Cloud Compute debian实例上启用了UFW,不幸的是端口22现在已被阻止。我已经尝试过各种方式进入虚拟机,但我无法......
我试图访问trhougth串口,但它要求我提供从未设置的用户和密码。
有谁知道我该怎么办?
如果我可以编辑'磁盘上的文件,可以更改防火墙规则并禁用它。已经考虑过在另一个实例上安装VM磁盘,但谷歌不允许"热分离"它
还尝试从VM磁盘的快照创建另一个VM,但当然,新实例也遇到了同样的问题。
里面有很多重要文件,无法进入...
答案 0 :(得分:2)
最简单的方法是创建一个禁用ufw
的启动脚本。实例启动时将执行该操作:
向下滚动到“自定义元数据”,然后添加“ startup-script”作为键,并添加以下脚本作为值:
#! /bin/bash
/usr/sbin/ufw disable
单击“保存”并重新启动实例。
答案 1 :(得分:1)
这是一个典型的例子,当你用钥匙在屋外关闭自己。
当ssh目前无法在Google Cloud Platform中运行时,有多种方法可以重新进入虚拟机,从我的观点来看,最简单的方法是使用startup script。
您可以使用它们在计算机启动时以Root身份运行脚本,这样您基本上可以在不访问虚拟机的情况下更改配置。
因此你可以:
只需启动一些命令即可停用UFW,然后再次访问该机器
如果还不够并且您需要访问以修复配置,您可以为root用户设置用户和密码,使用启动脚本,然后通过串行控制台访问,因此无需ssh(基本上就像你的键盘直接连接到硬件一样)。 请注意,一旦您访问实例,请删除或至少更改您刚刚使用的密码对有权访问该项目的人员可见。更安全的方法是将密码写在存储桶上的私有文件中,然后使用启动脚本将其下载到实例上。
请注意,您可以将命令输出重定向到文件,然后将文件上传到存储桶,如果您需要调试脚本,读取文件内容,了解正在发生的事情等等。
答案 2 :(得分:1)
您可以尝试使用google串行端口。从那时起,您可以启用ssh https://cloud.google.com/compute/docs/instances/interacting-with-serial-console
ufw允许ssh