VS Code Git认证失败主因是协议不匹配或凭据配置错误:HTTPS需重置系统凭据管理器并用Token替代密码,SSH需检查密钥权限、公钥上传及代理加载;统一Git路径和启用终端认证可解决环境不一致问题。

VS Code 中 Git 认证失败,通常不是 VS Code 本身的问题,而是 Git 凭据管理、SSH 配置或远程仓库权限没配对。重点检查凭据存储方式和当前使用的协议(HTTPS 还是 SSH)。
确认你用的是 HTTPS 还是 SSH 协议
在终端中运行 git remote get-url origin,看返回的是 https://... 还是 git@github.com:...。两者认证机制完全不同:
- HTTPS 方式依赖系统凭据管理器(如 Windows Credential Manager、macOS Keychain 或 Git 自带的
git-credential-manager) - SSH 方式依赖本地私钥(
~/.ssh/id_rsa或类似)和公钥是否已添加到 GitHub/GitLab 等平台
HTTPS 报“Authentication failed”?重置凭据最直接
Windows 用户打开「控制面板 → 用户账户 → 凭据管理器 → Windows 凭据」,找到 git 相关条目(如 git:https://github.com),删掉它。下次 VS Code 拉取时会弹窗要求重新输入账号密码(GitHub 已停用密码登录,需用 Personal Access Token 替代)。
macOS 用户可在「钥匙串访问」中搜索 github.com 或 git,删除对应凭据。Linux 用户若用了 git-credential-libsecret,可运行 git credential reject 并按提示输入 URL。
SSH 连不上?检查密钥和代理配置
先确保私钥存在且权限正确:chmod 600 ~/.ssh/id_rsa。再运行 ssh -T git@github.com 测试连接。如果提示 “Permission denied”,常见原因有:
- 未将公钥(
~/.ssh/id_rsa.pub)添加到 GitHub 的 SSH keys 设置页 - SSH agent 没启动或没加载密钥:运行 eval "$(ssh-agent -s)" 后再执行 ssh-add ~/.ssh/id_rsa
- VS Code 终端未继承 SSH agent 环境变量:可在 VS Code 设置中启用 terminal.integrated.env.linux(或对应系统)并添加
SSH_AUTH_SOCK
VS Code 内置终端和图形界面行为不一致?统一 Git 配置
VS Code 有时调用系统 Git,有时用自带 Git,导致凭据路径错乱。打开命令面板(Ctrl+Shift+P),运行 Git: Show Git Output,看日志里实际调用的是哪个 Git 路径。然后在 VS Code 设置中搜索 git.path,手动指定为系统 Git(如 /usr/bin/git 或 C:\Program Files\Git\bin\git.exe)。同时确保 git.terminalAuthentication 设为 true,允许终端弹出认证窗口。
基本上就这些。不复杂但容易忽略细节,尤其是协议类型和凭据存储位置是否匹配。










