VS Code推送到GitHub时出现未知用户认证失败异常
问题分析与解决
陌生用户编号22298273@github.com的来源
- 这个编号是GitHub的内部用户ID,并非公开的普通用户名,常见触发场景:
- 本地Git配置的
user.email被错误设置为该ID格式,大概率是之前使用自动化工具(比如GitHub Actions、第三方Git管理工具)操作仓库时留下的配置残留。 - VS Code的Git扩展本地缓存了旧的认证关联信息,即便退出GitHub账号,部分缓存未彻底清理,导致认证流程调用了错误的用户标识。
- 仓库远程URL存在异常映射(比如SSH链接被自动转为HTTPS时出现配置错误),触发了GitHub内部的临时认证ID。
- 本地Git配置的
多次点击Sync changes并ESC后无需密码同步成功的原因
- 这是Git的凭据缓存机制和VS Code的认证 fallback 逻辑共同作用的结果:
- 本地可能仍残留有效的认证凭据(比如之前配置的SSH密钥、未彻底失效的PAT缓存),第一次弹窗触发的是错误的HTTPS用户名密码认证路径,认证失败后,多次尝试会触发VS Code自动切换到其他认证方式(比如SSH密钥认证),从而完成同步。
- Git本地凭据缓存中存在之前的有效认证记录,虽然弹窗要求输入错误用户的密码,但ESC关闭后,Git自动调用了缓存中的有效凭据完成认证。
解决每次输入PAT的建议
- 配置Git凭据助手自动保存PAT:在终端执行
git config --global credential.helper manager-core,之后输入一次PAT就会被Windows凭据管理器保存,无需重复输入。 - 检查并修正本地Git用户配置:执行
git config --global user.name "你的GitHub用户名"和git config --global user.email "你的GitHub注册邮箱",确保用户标识正确,避免触发错误的认证路径。
内容的提问来源于stack exchange,提问作者Gorgsenegger
相关产品推荐
相关产品推荐

