Eclipse推送分支到Github时密码失效,浏览器可正常登录如何解决?
问题根因
GitHub于2021年8月起全面停止了账户密码对Git操作的身份验证支持,你在Eclipse推送时输入账户密码无法通过验证属于正常限制,浏览器可以正常登录是因为网页端走的是独立的身份验证体系,和Git操作的验证逻辑无关。
解决方案
方案1:使用个人访问令牌(PAT)替代密码验证
- 打开GitHub网页,点击右上角头像依次进入「Settings」→「Developer settings」→「Personal access tokens」→「Tokens (classic)」
- 点击「Generate new token」,勾选
repo、workflow、gist、read:user、user:email等必要权限,设置合适的过期时间后生成令牌,复制生成的令牌字符串(只会显示一次,丢失需要重新生成) - 回到Eclipse的推送验证窗口,用户名填写你的GitHub用户名,密码栏粘贴刚才复制的PAT即可完成验证
方案2:配置SSH密钥免密登录(更推荐,无需重复输入验证信息)
- 本地生成SSH密钥:打开Git Bash执行命令
ssh-keygen -t ed25519 -C "你的GitHub注册邮箱",全程按回车使用默认配置即可 - 执行命令
cat ~/.ssh/id_ed25519.pub,复制输出的全部公钥内容 - 打开GitHub网页依次进入「Settings」→「SSH and GPG keys」→「New SSH key」,将复制的公钥粘贴进去后保存
- 回到Eclipse修改仓库远程地址:右键对应项目仓库→「Properties」→「Git」→「Configuration」,找到
remote.origin.url配置项,将原HTTPS格式的地址https://github.com/用户名/仓库名.git修改为SSH格式git@github.com:用户名/仓库名.git,后续推送无需再输入验证信息
补充排查点
如果配置后依旧验证失败,可检查以下内容:
- 清理系统存储的旧GitHub凭据:Windows系统搜索打开「凭据管理器」→「Windows凭据」,删除所有GitHub相关的旧凭据;macOS系统打开「钥匙串访问」,搜索删除所有GitHub相关的旧条目,再重新尝试验证
- 确认Eclipse的EGit插件为最新版本,旧版本可能存在GitHub验证适配问题,可通过Eclipse顶部菜单栏「Help」→「Check for Updates」更新相关插件
内容的提问来源于stack exchange,提问作者Sevastos
相关产品推荐
相关产品推荐

