VSCode终端凭据由Git或系统管理,非VSCode自身存储;需清理系统凭据管理器中对应git:https://域名条目,并删除~/.ssh/known_hosts中旧主机记录,再用Personal Access Token替代密码或验证SSH免密登录。

终端凭据不是 VSCode 自己存的,而是 Git 或系统管的
VSCode 集成终端里输密码弹窗、推代码失败、连不上远程仓库——这些都不是 VSCode “记了什么凭据”,而是它调用的底层工具(比如 git、ssh、curl)各自走自己的认证链。你看到的“每次都要输密码”,大概率是 git 没配 credential.helper,或者系统凭据管理器里存了错的 token。VSCode 本身不接管、也不缓存这类凭据,它只是把终端控制权交出去而已。
清理 Git 凭据:删掉凭据管理器里的旧记录
Git 的凭据默认交给操作系统保管,删错地方就白忙活:
- Windows:打开「Windows 凭据管理器」→「Windows 凭据」→ 找所有以
git:https://github.com、git:https://gitlab.com、git:https://gitee.com开头的条目 → 全部删掉 - macOS:打开「钥匙串访问」→ 左上角搜索
github/gitlab→ 筛出「互联网密码」类型 → 删除对应条目 - Linux:运行
secret-tool clear --label="GitHub Credentials"(或类似 label),若报 command not found,先装libsecret-tools
删完后,下次 git push 会重新弹窗;这时别输密码,粘贴 Personal Access Token(ghp_... 开头)——GitHub 已停用明文密码。
重置 SSH 密钥信任与 known_hosts 冲突
SSH 连服务器或 GitHub/GitLab 的 git@ 地址时卡在 “Host key verification failed”,通常不是凭据问题,而是 known_hosts 文件里存了旧指纹:
- 定位文件:
~/.ssh/known_hosts - 找到目标主机那一行(比如 github.com 或你自己的服务器 IP),整行删掉
- 或者暴力清空:
ssh-keygen -R github.com(推荐,自动处理哈希格式) - 如果私钥有密码且总被反复提示,检查
~/.ssh/config是否写了AskPass或错误的IdentityFile
注意:known_hosts 不是凭据,但它是 SSH 建立可信连接的第一道检查;不清它,新密钥永远连不上。
验证是否真清干净:用命令绕过 VSCode 直接测
别依赖 VSCode 终端界面判断,直接在系统终端(不是 VSCode 里那个)跑这几条:
git credential reject → 回车 →protocol=https→ 回车 →host=github.com→ 回车 →username=yourname→ 回车 →EOF(模拟删 Git 凭据)-
ssh -T git@github.com(看是否免密登录,或提示 new key fingerprint) -
git ls-remote https://github.com/xxx/yyy.git HEAD(测试 HTTPS + Token 是否生效)
这三步都通了,VSCode 终端里的凭据才算真正重置完成。很多人卡在“以为删了”,其实是只清了 VSCode 界面或某一层,漏掉了凭据管理器或 known_hosts ——这两处最容易被忽略,也最常导致“删了还弹窗”。











