添加GitHub令牌后执行git push仍遇认证失败错误求助
解决GitHub HTTPS推送时的认证失败问题
这个错误是因为GitHub早在2021年8月13日就取消了密码认证方式,必须用个人访问令牌(PAT)或SSH密钥来完成认证。你已经添加了令牌但仍失败,大概率是令牌使用或配置有问题,按下面的方法逐一排查解决:
一、检查个人访问令牌(PAT)的有效性
- 确认生成PAT时勾选了repo权限(私有仓库必须要这个权限),如果涉及其他操作还要对应勾选权限;
- 检查令牌是否过期,有没有被你在GitHub账户里主动撤销。
二、重新配置本地Git的凭据
方法1:推送时手动输入令牌
当Git弹出用户名输入框时,输入你的GitHub用户名;密码框直接输入生成的PAT,不要输原GitHub密码。
方法2:修改远程仓库URL嵌入令牌(谨慎使用,有安全风险)
执行以下命令替换远程仓库地址,把<你的GitHub用户名>和<你的PAT>换成实际内容:
git remote set-url origin https://<你的GitHub用户名>:<你的PAT>@github.com/username/student-API.git
之后再执行git push就能直接推送。
方法3:用凭据管理器保存令牌(推荐)
- Windows:打开「凭据管理器」→「Windows凭据」,找到GitHub相关的条目,把密码替换成你的PAT;
- Mac:打开「钥匙串访问」,搜索GitHub的条目,更新密码为PAT;
- Linux:执行
git config --global credential.helper store,之后第一次推送输入用户名和PAT,Git会自动保存凭据,后续无需重复输入。
三、改用SSH密钥认证(更安全,长期省心)
如果不想每次折腾令牌,推荐用SSH密钥:
- 生成SSH密钥:
ssh-keygen -t ed25519 -C "你的GitHub注册邮箱"
一路回车用默认设置即可。
2. 添加公钥到GitHub:
复制~/.ssh/id_ed25519.pub(Windows路径是C:\Users\你的用户名\.ssh\id_ed25519.pub)里的全部内容,粘贴到GitHub账户的「SSH and GPG keys」设置页面中。
3. 修改远程仓库为SSH地址:
git remote set-url origin git@github.com:username/student-API.git
- 测试连接:
ssh -T git@github.com
看到提示「Hi [你的用户名]! You've successfully authenticated...」就说明配置成功,之后git push就能正常推送了。
内容的提问来源于stack exchange,提问作者Habeeb Tijani
相关产品推荐
相关产品推荐

