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

Jenkins同一SSH凭证拉取正常,推送至BitBucket时权限被拒

Jenkins SSH凭证拉取正常但推送失败的原因与排查

这是真实的权限错误,并非误导性提示。核心原因是BitBucket对仓库的**读权限(拉取)和写权限(推送)**是独立控制的,同一个SSH密钥可能仅被授予了读权限,没有写权限。

具体排查点:

BitBucket端配置

  • 登录BitBucket目标仓库,找到你配置的SSH公钥(对应Jenkins凭证XXX的公钥),检查关联的用户/团队角色:必须是开发者及以上权限(访客角色只有只读权限)
  • 查看master分支的保护规则:确认是否允许该用户直接推送,有没有开启"必须通过PR合并"、"禁止直接推送master"之类的限制

Jenkins任务配置

  • 确认推送的远程仓库地址和拉取的完全一致,避免推送时指向了其他无权限的仓库
  • 检查推送步骤的Git命令:确保明确指定了使用凭证XXX,部分Jenkins任务可能在推送阶段默认使用系统Git配置,而非任务中配置的凭证
  • 在Jenkins服务器上手动测试:用Jenkins运行用户执行ssh -i [私钥路径] -T git@bitbucket.org,查看返回信息(如果显示"You can read/write..."则权限正常,仅显示仓库名称则只有读权限)

密钥与系统权限

  • 确认私钥未设置密码,或Jenkins凭证中已正确填写私钥密码
  • 检查Jenkins服务器上私钥文件的权限:必须设为600,防止因权限过宽被Git拒绝使用

快速验证方法

用本地机器加载同一个SSH密钥,尝试手动推送代码到master分支:

  • 如果本地也失败:问题肯定在BitBucket的权限或分支保护配置
  • 如果本地能推送:问题出在Jenkins的凭证引用或运行用户权限配置

内容的提问来源于stack exchange,提问作者Pratik V Shah

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.04 16:55:00