M1 Mac下VS Code无法通过SSH向Bitbucket推拉代码问题求助
问题根因
你遇到的报错核心原因是本地仓库绑定的远程地址为HTTPS协议,和你配置的SSH密钥认证不匹配:SourceTree可能单独配置了SSH认证覆盖了仓库地址协议,而VS Code默认读取仓库本地的Git配置走HTTPS密码认证,同时Bitbucket当前已禁止使用账号主密码进行HTTPS协议的Git操作,所以会返回认证失败。
解决方案
方案1:切换远程地址为SSH协议(推荐,复用现有SSH配置)
- 进入本地仓库根目录,执行命令查看当前远程地址:
git remote -v - 如果返回的origin地址为
https://bitbucket.org/xxx/xxx.git格式,复制仓库对应的SSH协议地址(格式为git@bitbucket.org:账号名/仓库名.git) - 执行命令替换远程地址:
git remote set-url origin 你复制的SSH地址 - 替换完成后执行
git pull测试,操作正常后VS Code内推拉代码会自动走SSH密钥认证,无需输入密码。
方案2:保留HTTPS协议,配置应用密码
如果需要继续使用HTTPS协议,需更换认证凭据为Bitbucket应用密码:
- 登录Bitbucket账号,进入个人设置页的「应用密码」板块
- 新建应用密码,勾选仓库读写所需的权限,生成后保存好密码串
- 后续VS Code弹出密码输入框时,用户名填Bitbucket账号名,密码填刚才生成的应用密码即可,不要输入账号的主登录密码。
额外排查项(如已使用SSH地址仍报错)
如果确认远程地址已经是SSH格式仍有问题,按以下步骤检查:
- 执行
ssh-add -l查看本地ssh-agent是否加载了对应Bitbucket的SSH私钥,未加载的话执行:ssh-add --apple-use-keychain ~/.ssh/你的私钥文件名 - 检查
~/.ssh/config文件是否配置了Bitbucket的对应规则,参考配置如下:
Host bitbucket.org HostName bitbucket.org User git IdentityFile ~/.ssh/你的私钥文件名 UseKeychain yes AddKeysToAgent yes
配置完成后重启VS Code重试即可。
内容的提问来源于stack exchange,提问作者webber
相关产品推荐
相关产品推荐

