如何访问 Google Cloud VM 控制台以启用 ssh?

如何访问 Google Cloud VM 控制台以启用 ssh?

希望一切顺利。

我们有一台 GCE Centos VM。ssh 没问题,但由于安全原因被禁用(停止 sshd 服务并关闭 chkconfig)。我们现在需要启用 ssh,有没有办法访问 VM 控制台来执行此操作?或者还有其他方法可以在 Google Cloud VM 上启用 ssh 吗?

答案1

解决您的问题请按照以下步骤操作:

  1. 按照以下文档启用串行控制台连接启用虚拟机实例的访问使用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

  2. 如果您没有用户和密码登录,请关闭您的虚拟机并通过在部分中添加来设置启动脚本Custom metadatastartup-script和值:

    useradd --groups google_sudoers tempuser
    echo "tempuser:password" | chpasswd
    

    然后启动您的虚拟机。

  3. 按照以下文档通过串行端口连接到您的虚拟机连接到串行控制台使用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

  4. 启用 SSH 并启动 sshd:

    $ sudo chkconfig sshd on
    $ sudo systemctl start sshd
    
  5. 按照以下文档禁用通过串行端口连接进行访问禁用交互式串行控制台访问使用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

请记住,根据文档与串行控制台交互

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

此外,请查看第三方文章解决 Compute Engine 被锁定的问题

相关内容