Bitbucket SSH拉取正常但推送失败问题求助
解决Git Push失败但Pull正常的问题
按以下步骤逐一排查,快速定位问题:
检查新Mac的SSH公钥是否已添加到Bitbucket
- 终端执行
cat ~/.ssh/id_rsa.pub(如果用的是自定义密钥文件名,替换成对应名称),复制输出的公钥内容。 - 登录Bitbucket后台,进入「个人设置 → SSH keys」,确认是否已经添加了这台新设备的公钥。如果没有,粘贴进去保存即可。
- 终端执行
验证SSH与Bitbucket的连接有效性
终端运行ssh -T git@bitbucket.org,如果返回logged in as <你的Bitbucket用户名>,说明SSH连接正常;如果报错,根据提示排查(比如密钥权限错误、本地代理干扰)。核对本地仓库的远程地址配置
执行git remote -v,查看push和pull的远程地址是否一致。如果pull用的是HTTPS、push用的是SSH(或反过来),会导致权限逻辑不一致。确保两者都是SSH格式:git@bitbucket.org:<你的用户名>/<仓库名>.git。修复Mac系统的SSH密钥权限或代理问题
- 检查SSH代理状态:执行
echo $SSH_AUTH_SOCK,如果有输出,尝试重置代理:ssh-add -D清空现有密钥,再执行ssh-add ~/.ssh/id_rsa添加当前密钥。 - 修正密钥文件权限:Mac对SSH密钥权限要求严格,执行
chmod 600 ~/.ssh/id_rsa和chmod 644 ~/.ssh/id_rsa.pub,避免权限过宽导致被拒绝。
- 检查SSH代理状态:执行
确认仓库的写权限
登录Bitbucket对应仓库,进入「设置 → 用户和权限」,检查你的账号是否拥有写权限(pull仅需读权限,push必须要有写权限)。如果权限不足,联系仓库管理员添加。
内容的提问来源于stack exchange,提问作者Ian
相关产品推荐
相关产品推荐

