Bitbucket仓库推送失败求助:HTTPS/SSH均返回权限错误
解决Bitbucket SSH Push权限被拒的问题
看起来你已经做了不少基础配置,但还是卡在权限问题上,我来给你几个针对性的排查和解决方向:
1. 确认SSH密钥绑定的账号拥有仓库读写权限
虽然ssh -T username@bitbucket.org提示登录成功,但这个username账号是否被添加为目标仓库的协作成员?
- 登录Bitbucket,进入
main-account/repo仓库的设置页面 - 找到「Users and groups」选项,检查你的username账号是否在列表中,并且权限设置为「Write」或更高(比如Admin)
- 如果不在列表里,需要仓库管理员添加你为协作成员并赋予写权限
2. 验证远程仓库地址的准确性
先检查当前本地仓库的远程地址是否正确:
git remote -v
确认输出的origin地址是git@bitbucket.org:main-account/repo.git,注意:
- 不要写错
main-account(团队/主账号名)和repo(仓库名)的拼写 - 格式是
git@bitbucket.org:<账号名>/<仓库名>.git,冒号不能换成斜杠
如果地址有误,重新添加远程仓库:
git remote remove origin git remote add origin git@bitbucket.org:main-account/repo.git
3. 调试SSH连接,确认密钥使用正确
用 verbose 模式查看SSH连接的详细过程,确认是否用了正确的密钥:
ssh -v git@bitbucket.org
在输出中查找类似以下的内容:
debug1: Offering public key: /Users/xxx/.ssh/id_rsa RSA SHA256:xxx
debug1: Server accepts key: /Users/xxx/.ssh/id_rsa RSA SHA256:xxx
如果看到的密钥不是你绑定到Bitbucket的那个,或者出现权限类错误,可尝试:
- 检查
~/.ssh/config中IdentityFile路径是否正确,确保指向的是你在Bitbucket上添加的公钥对应的私钥 - 修复密钥文件的权限(权限过宽会被SSH拒绝):
chmod 700 ~/.ssh chmod 600 ~/.ssh/id_rsa
4. 临时指定密钥执行Push
如果~/.ssh/config的配置没生效,可以直接指定密钥进行推送测试:
GIT_SSH_COMMAND='ssh -i ~/.ssh/id_rsa' git push origin new_branch
5. 检查仓库分支权限限制
如果以上都没问题,可能是仓库设置了分支保护规则:
- 进入Bitbucket仓库的「Settings」→「Branch permissions」
- 确认
new_branch所在的分支规则没有限制你的账号推送
内容的提问来源于stack exchange,提问作者Fathi
相关产品推荐
相关产品推荐

