希望一切顺利。
我们有一台 GCE Centos VM。ssh 没问题,但由于安全原因被禁用(停止 sshd 服务并关闭 chkconfig)。我们现在需要启用 ssh,有没有办法访问 VM 控制台来执行此操作?或者还有其他方法可以在 Google Cloud VM 上启用 ssh 吗?
答案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
如果您没有用户和密码登录,请关闭您的虚拟机并通过在部分中添加来设置启动脚本
Custom metadata
键startup-script
和值:useradd --groups google_sudoers tempuser echo "tempuser:password" | chpasswd
然后启动您的虚拟机。
按照以下文档通过串行端口连接到您的虚拟机连接到串行控制台使用
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
启用 SSH 并启动 sshd:
$ sudo chkconfig sshd on $ sudo systemctl start sshd
按照以下文档禁用通过串行端口连接进行访问禁用交互式串行控制台访问使用
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 被锁定的问题。