Spring Tools Suite 4.11.1无法从GitHub检出代码,反复提示输入账号密码
问题根因
GitHub 自2021年8月13日起已全面停用账户密码的Git操作身份验证,反复弹出用户名密码提示是因为STS 4.11.1内置的Git组件仍在尝试使用已废弃的密码验证逻辑提交身份信息,被GitHub拒绝后触发的重复验证流程。
解决方案1:使用HTTPS协议+个人访问令牌(PAT)验证
- 生成GitHub个人访问令牌:
登录GitHub账户,进入「Settings」-「Developer settings」-「Personal access tokens」,选择「Tokens (classic)」,点击「Generate new token」,勾选repo、workflow、read:org等必要权限,设置有效期后生成令牌,务必复制保存好生成的令牌,仅会显示一次 - STS中替换验证信息:
重启STS后重新触发代码检出操作,在弹出的用户名密码输入框中,用户名仍填你的GitHub账户名,密码栏直接粘贴刚才生成的PAT即可完成验证。 - 可选全局存储凭证避免重复输入:
打开本地终端执行命令:git config --global credential.helper store,后续第一次输入PAT后会自动存储,无需重复填写。
解决方案2:使用SSH协议验证(无需重复输入身份信息)
- 生成本地SSH密钥:
本地终端执行ssh-keygen -t ed25519 -C "你的GitHub绑定邮箱",连续回车生成默认路径的密钥对 - 上传公钥到GitHub:
进入GitHub「Settings」-「SSH and GPG keys」,点击「New SSH key」,将本地~/.ssh/id_ed25519.pub文件的全部内容粘贴进去保存 - STS检出时选择SSH协议的仓库地址即可,会自动读取本地SSH密钥完成验证,无需再输入用户名密码。
异常排查
- 确认STS 4.11.1内置的Git版本是否为2.31以上,过低的Git版本可能存在身份验证兼容问题,可以在STS的「Window」-「Preferences」-「Team」-「Git」中查看内置Git版本,若版本过低可以切换为本地安装的高版本Git路径
- 检查本地是否有存储过期的GitHub凭证,Windows可以进入「凭据管理器」-「Windows凭据」删除GitHub相关的旧凭证,macOS可以进入「钥匙串访问」搜索GitHub删除过期凭证后重试。
内容的提问来源于stack exchange,提问作者Vinodkumar PANDIYAN
相关产品推荐
相关产品推荐

