Git在Git Bash终端可正常运行但在VS Code中使用报错如何解决
VS Code内Git SSH公钥认证失败问题排查
核心原因
该问题和远程仓库权限、本地SSH密钥对有效性无关——Git Bash环境下所有Git操作正常,已经证明这部分配置完全正确。报错的根源是VS Code调用Git时无法读取到本地SSH认证凭据,本质是进程上下文的环境变量、程序路径配置不匹配。
具体触发场景与修复方案
- 启动路径导致环境变量丢失
如果你通过桌面快捷方式、开始菜单直接启动VS Code,程序不会继承Git Bash终端会话里的SSH_AUTH_SOCK环境变量,Git进程无法对接已经加载了私钥的SSH Agent,就会抛出公钥权限错误。
修复方式:关闭所有已打开的VS Code窗口,在可以正常执行Git操作的Git Bash终端中进入项目目录,执行code .命令启动VS Code,后续内置Git操作即可正常运行。 - Git关联的SSH程序路径不匹配
Windows环境下存在多套SSH程序:系统自带OpenSSH、Git for Windows自带SSH,两套程序读取的配置、密钥存储路径不统一。如果VS Code默认调用系统SSH程序,就读取不到Git配置中指定的私钥。
修复方式:打开VS Code设置面板,搜索配置项git.sshCommand,将值设置为Git自带的SSH程序完整路径,通常为"C:\Program Files\Git\usr\bin\ssh.exe",保存后重启VS Code生效。 - SSH Agent未配置持久化加载
如果你每次使用Git前都需要手动在Git Bash中执行ssh-add命令加载私钥,说明本地SSH Agent没有配置开机自启、也没有持久化存储私钥,图形界面启动的VS Code自然无法获取到已加载的密钥。
修复方式:将系统服务中的「OpenSSH Authentication Agent」设置为开机自动启动,同时将常用私钥添加到Agent的持久化存储中,无需每次手动加载。
报错特征
VS Code内置Git执行操作时抛出的典型错误如下:
> git pull --tags origin master git@bitbucket.org: Permission denied (publickey). fatal: Could not read from remote repository. Please make sure you have the correct access rights and the repository exists.
内容的提问来源于stack exchange,提问作者erwindenboer
相关产品推荐
相关产品推荐

