Ubuntu 20.04系统下如何删除VS Code缓存的GitHub密码以解决Git认证失败问题
解决方案(Ubuntu 20.04环境)
前置检查
先分别在系统终端和VS Code终端执行以下命令,确认输出完全一致:
- 查看Git用户名:
git config --global user.name - 查看Git绑定邮箱:
git config --global user.email - 查看仓库远程地址:
git remote -v
如果输出不一致,先在VS Code终端执行对应配置命令修正后再尝试后续操作。
问题根因说明
该问题是Ubuntu环境下VS Code终端与系统终端的权限/环境隔离导致的,Windows/Mac的凭证管理逻辑和Ubuntu差异较大,所以通用方案无效。
步骤1:排查VS Code安装渠道问题
Ubuntu软件商店默认安装的VS Code是Snap沙箱版本,默认没有权限访问系统密钥环,是该场景下的最高发问题:
- 打开系统终端,执行以下命令给Snap版VS Code授权访问密码管理器:
sudo snap connect code:password-manager-service - 重启VS Code后再测试Git操作即可。
如果上述操作无效,建议直接卸载Snap版VS Code,从微软官方下载Deb安装包重装,可彻底规避沙箱权限限制。
步骤2:统一Git凭证助手配置
如果你的VS Code是官方Deb版本,可通过配置Git凭证存储方式解决:
- 先安装libsecret依赖包:
sudo apt update && sudo apt install libsecret-1-0 libsecret-1-dev -y - 编译Git自带的libsecret凭证助手:
sudo make --directory=/usr/share/doc/git/contrib/credential/libsecret - 全局配置Git使用该凭证助手:
git config --global credential.helper /usr/share/doc/git/contrib/credential/libsecret/git-credential-libsecret - 重启VS Code后再次执行Git操作,输入一次GitHub账号密码/PAT后就会自动存储到系统密钥环,后续无需重复输入。
步骤3:可选兜底方案(切换SSH协议)
如果上述方案都不生效,可直接将仓库远程地址从HTTPS切换为SSH协议,完全规避凭证认证问题:
- 先在本地生成SSH密钥对(如果已有可跳过):
ssh-keygen -t ed25519 -C "你的GitHub绑定邮箱" - 把生成的~/.ssh/id_ed25519.pub文件内容复制到GitHub账号的SSH密钥设置中。
- 进入本地仓库目录,修改远程地址为SSH格式:
git remote set-url origin git@github.com:GitHub用户名/仓库名.git - 重启VS Code后即可正常执行push/pull操作。
附加检查项
如果仍有问题,可确认VS Code的terminal.integrated.inheritEnv配置项为开启状态:
- 打开VS Code设置(快捷键Ctrl+,)
- 搜索
terminal.integrated.inheritEnv,勾选对应选项,确保集成终端继承系统环境变量。
内容的提问来源于stack exchange,提问作者Kthree
相关产品推荐
相关产品推荐

