繁体   English   中英

谷歌云平台修复 SSH

[英]Google Cloud Platform fix SSH

我的谷歌计算引擎上的SSH访问有问题。 我制作了一台服务器,在其上设置了应用程序并配置了域,一切正常。 几天后,当我想接近她进行更改时,我的 SSH 没有工作。 我有一个假设我正在打开防火墙并且我没有为 SSH 添加规则,也许这是个问题? 但是现在如何访问机器并启用它呢?

提前致谢。

要解决您的问题,您可以通过串行控制台连接到您的 VM 实例。 在通过串行控制台连接到 VM 之前,请检查您是否在GCP Firewall启用了与 VM 实例的连接。

请查看以下分步说明:

  1. 使用gcloud命令启用串行控制台连接

     gcloud compute instances add-metadata NAME_OF_YOUR_VM_INSTANCE \ --metadata serial-port-enable=TRUE

或 go 到Compute Engine -> VM instances -> 点击NAME_OF_YOUR_VM_INSTANCE -> 点击EDIT -> go 到Remote access部分并选中Enable connecting to serial ports

  1. 创建临时用户和密码以登录:关闭您的虚拟机并通过在Custom metadatastartup-script和值部分添加来设置启动脚本

     #:/bin/bash useradd --groups google_sudoers tempuser echo "tempuser:password" | chpasswd

然后启动你的虚拟机。

  1. 使用gcloud命令通过串口连接到你的虚拟机

     gcloud compute connect-to-serial-port NAME_OF_YOUR_VM_INSTANCE

    或 go 到Compute Engine -> VM instances -> 点击NAME_OF_YOUR_VM_INSTANCE -> 并点击Connect to serial console

  2. 检查出了什么问题。

  3. 使用gcloud命令禁用通过串口的访问

     gcloud compute instances add-metadata NAME_OF_YOUR_VM_INSTANCE \ --metadata serial-port-enable=FALSE

或 go 到Compute Engine -> VM instances -> 点击NAME_OF_YOUR_VM_INSTANCE -> 点击EDIT -> go 到Remote access部分并取消选中Enable connecting to serial ports 请记住,根据文档Interacting with the serial console

注意:交互式串行控制台不支持基于 IP 的访问限制,例如 IP 白名单。 如果您在实例上启用交互式串行控制台,客户端可以尝试从任何 IP 地址连接到该实例。 如果知道正确的 SSH 密钥、用户名、项目 ID、区域和实例名称,任何人都可以连接到该实例。 使用防火墙规则来控制对您的网络和特定端口的访问。

此外,请查看 3rd party example Resolving getting locked out of a Compute Engine

如果您无法通过串行控制台检查日志进行连接

  1. Go 到Compute Engine -> VM instances -> 点击 NAME_OF_YOUR_VM -> 在VM instance details找到Logs部分,然后点击Serial port 1 (console)
  2. 再次重新启动您的 VM 实例。
  3. 检查完整的启动日志是否有任何错误或/和警告。

如果您发现与磁盘空间相关的错误/警告,您可以尝试根据Resizing a zonal persistent disk文档调整其大小,也可以参考Recovering an inaccessible instance or full boot disk文章:

如果没有任何帮助,请尝试遵循文档故障排除 SSH中的其他建议,并根据您的尝试更新您的问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM