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

基于Google Compute Engine与Github的CI/CD管道SSH连接故障排查求助

排查Cloud Build SSH连接GCE实例失败的问题

以下是你可能遗漏的关键配置项:

  • Cloud Build服务账号权限不足
    Cloud Build默认使用的服务账号(格式为[你的项目编号]@cloudbuild.gserviceaccount.com)需要具备Compute Instance Admin(v1)或至少Compute OS Login Admin权限,才能通过SSH访问GCE实例。若采用OS Login方式,需同时确保目标实例已启用OS Login(在实例详情的「安全」标签页中检查enable-oslogin元数据是否设为TRUE)。

  • 实例SSH密钥/OS Login配置缺失
    未启用OS Login时,需手动将Cloud Build服务账号的公钥添加到实例的~/.ssh/authorized_keys文件中;更推荐启用OS Login,避免手动管理密钥的繁琐。同时确认实例元数据中已开启OS Login。

  • 实例网络访问限制
    若实例仅拥有内部IP,Cloud Build默认网络无法直接访问,需配置Cloud Build使用与实例相同的VPC,或设置VPC对等连接。此外,确保实例拥有可访问的外部IP,且SSH命令中指定了正确的实例区域(--zone参数)。

  • 防火墙规则配置不完整
    虽然开放了22端口,但需确认防火墙规则的目标标签与实例标签匹配(或设为「网络中的所有实例」),来源范围包含Cloud Build的IP段(或测试阶段临时允许0.0.0.0/0,生产环境需缩小范围)。注意SSH仅需TCP协议,UDP无需开放。

  • SSH命令参数错误
    检查Cloud Build步骤中的gcloud compute ssh命令,是否遗漏了--zone(实例所在区域)、--project(跨项目时)等必要参数;若使用自定义密钥,需确保密钥文件已在Cloud Build环境中正确加载。

  • 实例SSH服务异常
    手动登录实例(若可行),检查sshd服务是否正常运行,/etc/ssh/sshd_config中是否允许密钥登录,以及是否使用了正确的登录用户(GCE实例默认用户通常为ubuntu、debian等,而非root)。

另外,针对你触发实例执行pull.sh的需求,推荐采用更简洁安全的方案:使用Cloud Functions + Pub/Sub触发代码推送事件,再通过gcloud compute instances execute-command直接在实例上执行脚本,无需建立SSH连接,能避免SSH相关的权限和网络问题。

内容的提问来源于stack exchange,提问作者Keval Karia

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 10:32:46