SourceTree推送至Bitbucket报错Could not read from remote repository如何解决
SourceTree推送Bitbucket公钥权限报错解决方案
步骤1:验证本地SSH密钥有效性
打开系统终端,逐行执行以下操作:
- 执行连接测试命令:
ssh -T git@bitbucket.org- 正常返回结果为:
logged in as <你的Bitbucket用户名>.,出现该结果说明密钥本身配置无误,直接跳转到步骤2 - 如果返回Permission denied,继续执行下面的命令
- 正常返回结果为:
- 如果你生成的是最新的ed25519格式密钥,执行:
macOS系统:ssh-add --apple-use-keychain ~/.ssh/id_ed25519
Linux系统:ssh-add ~/.ssh/id_ed25519 - 如果你生成的是传统RSA格式密钥,执行:
macOS系统:ssh-add --apple-use-keychain ~/.ssh/id_rsa
Linux系统:ssh-add ~/.ssh/id_rsa - 执行时如果提示输入密码,输入你生成密钥时设置的保护密码即可,未设置密码直接按回车
- 再次执行
ssh -T git@bitbucket.org验证,确认返回成功提示后再进行后续操作
步骤2:修正SourceTree SSH配置
打开SourceTree设置页面:
- macOS:点击顶部菜单栏
SourceTree > 设置 - Windows:点击顶部菜单栏
工具 > 选项
找到SSH配置页: - 确认SSH客户端选择为OpenSSH
- 确认「SSH密钥」路径选择的是你本地的私钥文件(是没有
.pub后缀的文件,比如id_ed25519,不要选后缀为.pub的公钥文件) - 保存设置后完全关闭SourceTree,重新打开再尝试推送
步骤3:检查仓库远程地址配置
在SourceTree中打开报错的仓库:
- 点击右上角仓库设置按钮,选择「远程」选项卡
- 查看origin地址的前缀:如果是
https://开头,需要修改为SSH格式,格式为git@bitbucket.org:<你的Bitbucket用户名>/<仓库名>.git - 保存修改后重新尝试推送
步骤4:核对Bitbucket公钥配置
打开本地公钥文件(比如~/.ssh/id_ed25519.pub),复制全部内容,登录Bitbucket个人账号的SSH密钥设置页,对比已添加的公钥内容:
- 确认公钥内容完全一致,没有多复制空格、换行
- 如果内容不一致,删除原有公钥,重新粘贴本地公钥内容保存后再尝试推送
内容的提问来源于stack exchange,提问作者nik218
相关产品推荐
相关产品推荐

