GitHub HTTPS链接使用Personal Access Token认证失败,如何解决?
GitHub PAT 认证失败的排查方案
你用Personal Access Token(PAT)替代密码推送到GitHub仓库时遇到认证失败,提示密码认证已在2021年8月移除,按文档提示输入PAT仍无法成功,可能是以下几个问题导致:
1. PAT权限不足
创建令牌时必须勾选对应权限才能推送代码:
- 私有仓库需要勾选
repo权限 - 公有仓库需要勾选
public_repo权限
回去检查你的PAT权限设置,确保开启了必要的仓库访问权限。
2. Git缓存了旧密码
Git可能已经缓存了你之前输入的密码,导致直接用旧密码认证,根本没触发PAT输入提示。清除缓存的方法:
- Windows:
# 清除缓存 git credential-manager-core erase # 按提示输入仓库URL:https://github.com/jcubic/git-test.git - macOS:
打开「钥匙串访问」,搜索「github.com」,删除相关的密码条目。 - Linux:
# 清除缓存 git credential-cache exit # 或者删除缓存文件 rm ~/.git-credentials
3. PAT输入错误或已过期
- PAT是一串长字符,复制粘贴时容易漏输或多带空格,仔细核对确保输入准确;
- 检查PAT是否过期,创建时如果设置了有效期,确认当前令牌仍在有效期内。
4. 远程仓库URL有误
用以下命令查看当前远程地址:
git remote -v
确认地址是https://github.com/jcubic/git-test.git,如果有拼写错误,用以下命令修正:
git remote set-url origin https://github.com/jcubic/git-test.git
5. 手动嵌入PAT到URL(临时方案)
如果Git始终不弹出输入提示,可以直接把PAT嵌入到远程URL中:
git remote set-url origin https://你的GitHub用户名:你的PAT@github.com/jcubic/git-test.git
执行后再尝试git push即可。注意:这种方式会把PAT存在本地配置里,用完后建议改回普通URL避免泄露。
内容的提问来源于stack exchange,提问作者jcubic
相关产品推荐
相关产品推荐

