Google Compute Engine - 如果禁用ssh端口,则替代登录VM实例

Rod*_*ati 1 ssh debian firewall virtual-machine google-compute-engine

我登录了我的GCE VM实例(Debian)并安装ufw并启用了它.

但是,我忘了启用端口22.是否有其他方式登录,以便我可以启用端口22而不必销毁实例?

Adr*_*ián 9

不,访问实例的唯一方法是通过SSH.

您可以使用如下所示的启动脚本启用端口22:

#!/bin/bash
/usr/sbin/ufw allow 22/tcp
Run Code Online (Sandbox Code Playgroud)

然后,您可以使用开发人员控制台将此启动脚本添加到您的实例,并将代码隐藏在自定义元数据部分中,或者使用带有以下命令的云SDK:

gcloud compute instances add-metadata <INSTANCE NAME> --metadata-from-file startup-script=<PATH TO SCRIPT> --project <PROJECT ID>
Run Code Online (Sandbox Code Playgroud)

每次实例启动或重新启动时,此脚本都将以root身份执行,因此您需要重新启动实例,并且可以在完成目标后删除脚本:

gcloud compute instances remove-metadata <INSTANCE NAME> --keys startup-script --project <PROJECT ID>
Run Code Online (Sandbox Code Playgroud)

您可以在文档中获得有关启动脚本的更多信息.