You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

无法通过SSH结合IAM与双因素认证登录Google Cloud虚拟机

无法通过SSH结合IAM与双因素认证登录Google Cloud虚拟机

看起来你遇到了SSH-in-browser结合OS Login双因素认证的循环问题——输入g.co/sc的验证码后又回到同一页面,确实挺闹心的。我结合你的配置信息,梳理几个可能的原因和解决步骤:

可能的问题点及解决步骤

1. Shielded VM的Secure Boot可能阻碍OS Login组件运行

你开启了Shielded VM的Secure Boot功能,它会限制系统加载未经过签名的软件组件。而OS Login的部分组件在Ubuntu LTS环境下,可能没有被Secure Boot的默认签名列表认可,导致认证流程无法正常完成。

解决建议:

  • 临时关闭实例的Secure Boot选项(在VM实例详情的“Security”标签下修改),重启实例后再次尝试SSH-in-browser登录。
  • 如果关闭后能正常登录,说明是Secure Boot的兼容性问题,后续可以配置Secure Boot允许OS Login相关组件的签名。

2. 元数据或权限配置的冲突

你的实例配置了enable-oslogin: true和enable-oslogin-2fa: true,但需要检查以下几点:

  • 项目级元数据是否覆盖实例设置:去GCP控制台的“项目元数据”页面,确认没有设置disable-oslogin: true——项目级的元数据优先级高于实例级,如果存在这个键,会直接禁用OS Login,导致认证循环。
  • VM Access的2FA设置是否重复:你同时勾选了“Require 2-Step Verification”和通过元数据开启enable-oslogin-2fa,这两个设置可能存在冲突。建议保留元数据的enable-oslogin-2fa: true,取消VM Access里的“Require 2-Step Verification”选项,重启实例后测试。
  • 确认IAM权限的生效状态:虽然你添加了多个Compute相关权限,但要确保你的账号已经完成OS Login的身份关联——可以尝试退出GCP控制台,重新用2FA登录后再访问SSH-in-browser。

3. SSH-in-browser的浏览器缓存问题

有时候浏览器的缓存、Cookie或者会话状态会导致认证流程异常循环。

解决建议:

  • 用浏览器的无痕/隐私模式打开SSH-in-browser窗口,重新尝试认证。
  • 清除浏览器的缓存和GCP相关的Cookie后,再进行登录操作。

4. 用gcloud命令行排除SSH-in-browser本身的问题

如果上面的方法都无效,可以尝试用GCP的命令行工具gcloud来测试SSH连接,确认是SSH-in-browser的问题还是VM端的配置问题:

gcloud compute ssh <你的实例名称> --zone <实例所在区域>

如果命令行能成功登录,说明问题出在SSH-in-browser端,可以尝试更换浏览器或联系GCP支持;如果命令行也无法登录,那还是回到VM的配置和权限排查。

备注:内容来源于stack exchange,提问作者Europa

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.22 11:08:00