【发布时间】:2020-12-16 08:05:35
【问题描述】:
我的 google 计算引擎 上的 SSH 访问有问题。我制作了一台服务器,在其上设置了应用程序并配置了域,一切正常。几天后,当我想找她进行更改时,我的 SSH 无法正常工作。我有一个假设我打开了防火墙并且我没有为 SSH 添加规则,也许这是个问题?但是现在如何访问机器并启用它呢?
提前致谢。
【问题讨论】:
标签: google-cloud-platform ssh google-compute-engine
我的 google 计算引擎 上的 SSH 访问有问题。我制作了一台服务器,在其上设置了应用程序并配置了域,一切正常。几天后,当我想找她进行更改时,我的 SSH 无法正常工作。我有一个假设我打开了防火墙并且我没有为 SSH 添加规则,也许这是个问题?但是现在如何访问机器并启用它呢?
提前致谢。
【问题讨论】:
标签: google-cloud-platform ssh google-compute-engine
要解决您的问题,您可以通过串行控制台连接到您的 VM 实例。 在通过串行控制台连接到 VM 之前检查您是否在 GCP Firewall 启用了与 VM 实例的连接。
请看下面的分步说明:
Enable serial console connection 与 gcloud 命令:
gcloud compute instances add-metadata NAME_OF_YOUR_VM_INSTANCE \
--metadata serial-port-enable=TRUE
或转到Compute Engine -> VM instances -> 点击NAME_OF_YOUR_VM_INSTANCE -> 点击EDIT -> 转到Remote access部分并检查Enable connecting to serial ports p>
创建临时用户和密码以登录:关闭您的 VM 并通过在 Custom metadata 部分添加键 startup-script 和值来设置 startup script:
#!/bin/bash
useradd --groups google_sudoers tempuser
echo "tempuser:password" | chpasswd
然后启动你的虚拟机。
Connect to your VM via serial port 和 gcloud 命令:
gcloud compute connect-to-serial-port NAME_OF_YOUR_VM_INSTANCE
或转到Compute Engine -> VM instances -> 点击NAME_OF_YOUR_VM_INSTANCE -> 并点击Connect to serial console
检查出了什么问题。
Disable access via serial port 和 gcloud 命令:
gcloud compute instances add-metadata NAME_OF_YOUR_VM_INSTANCE \
--metadata serial-port-enable=FALSE
或转到Compute Engine -> VM instances -> 点击NAME_OF_YOUR_VM_INSTANCE -> 点击EDIT -> 转到Remote access部分并取消选中Enable connecting to serial ports。请记住,根据文档Interacting with the serial console:
注意:交互式串行控制台不支持基于 IP 的访问 IP 白名单等限制。如果启用交互式 实例上的串行控制台,客户端可以尝试连接到该实例 来自任何 IP 地址的实例。任何人都可以连接到该实例,如果 他们知道正确的 SSH 密钥、用户名、项目 ID、区域和 实例名称。使用防火墙规则控制对网络的访问 和特定的端口。
此外,请查看第 3 方示例 Resolving getting locked out of a Compute Engine。
如果您无法通过串行控制台连接,请检查日志:
Compute Engine -> VM instances -> 点击NAME_OF_YOUR_VM -> 在VM instance details 找到日志部分并点击Serial port 1 (console)
如果您发现与磁盘空间相关的错误/警告,您可以尝试根据文档 Resizing a zonal persistent disk 以及文章 Recovering an inaccessible instance or a full boot disk 调整其大小:
如果没有任何帮助,请尝试遵循文档 Troubleshooting SSH 中的其他建议,并根据您的尝试更新您的问题。
【讨论】: