GCP跨区域实例SSH连接遇4033授权错误求助
解决GCP跨区域IAP SSH连接4033未授权错误
检查IAP隧道权限
- 确保发起连接的账号拥有
roles/iap.tunnelResourceAccessor角色,该角色允许通过IAP访问VM实例。可在GCP控制台IAM与管理员中给对应账号添加此角色,范围选目标实例I2所在项目或实例本身。 - 确认目标实例I2的通过IAP连接选项已开启:在Compute Engine实例详情页的「远程访问」部分,勾选该选项。
验证SSH密钥配置
- 检查本地
~/.ssh/google_compute_engine公钥是否已添加到目标实例I2的~/.ssh/authorized_keys文件中。首次连接可执行gcloud compute ssh I2 --zone=区域B自动推送密钥,手动操作需确保公钥内容完整无格式错误。 - 检查目标实例I2的sshd配置:查看
/etc/ssh/sshd_config,确认PubkeyAuthentication yes已开启,且AllowUsers/AllowGroups未限制当前连接账号。
排查IAP隧道命令参数
- 手动执行
gcloud compute start-iap-tunnel时,必须指定目标实例的可用区,示例命令:
之后通过gcloud compute start-iap-tunnel I2 22 --zone=区域B --local-host-port=localhost:2222ssh -p 2222 localhost连接,避免遗漏--zone参数。 - 检查
~/.ssh/config是否存在与GCP实例冲突的自定义SSH规则,如有可临时注释后重试。
其他排查点
- 重启目标实例I2的sshd服务:Debian/Ubuntu执行
sudo systemctl restart sshd,RHEL/CentOS执行sudo service sshd restart,确保配置生效。 - 检查实例OS防火墙:如Ubuntu的ufw或CentOS的firewalld,确认22端口允许本地回环(localhost)及IAP段
35.235.240.0/20访问。
内容的提问来源于stack exchange,提问作者Bernardo Rebelo
相关产品推荐
相关产品推荐

