You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Git推送至GitHub时个人访问令牌(Token)不生效报错如何解决?

问题原因与解决步骤

核心问题说明

你遇到的两次报错分别对应两个常见问题:

  1. 第一次提示密码认证已废弃,是因为本地Git凭据管理器缓存了旧的密码认证信息,你输入的token没有被系统正确读取,依然用旧的密码规则提交认证。
  2. 第二次返回403权限不足,是因为生成的个人访问令牌(PAT)缺少对应权限、已过期,或是远程仓库地址的用户名、仓库名拼写错误。

操作步骤

步骤1:清理本地Git缓存的旧凭据

根据你使用的操作系统执行对应操作:

  • Windows:打开控制面板→用户账户→凭据管理器→Windows凭据,找到所有git:https://github.com相关的条目,全部删除。
  • macOS:打开钥匙串访问(Keychain Access),搜索github.com,找到类型为「互联网密码」的相关条目,全部删除。
  • Linux:执行命令git config --global --unset credential.helper,临时禁用凭据缓存,后续验证成功后可按需重新配置。

步骤2:确认PAT的权限与有效期

生成PAT时必须勾选对应权限,否则会触发权限不足报错:

  • 如果你生成的是经典(classic)PAT,必须勾选repo完整权限,若要推送关联包还需要勾选write:packages,私有仓库必须配置该权限。
  • 如果你生成的是细粒度(fine-grained)PAT,需要在仓库访问范围中选中你要推送的目标仓库,然后在仓库权限设置中将Contents权限设为「读写」。
    同时确认你使用的PAT仍在有效期内,过期令牌需要重新生成。

步骤3:重新配置远程仓库并推送

先确认GitHub上的用户名、仓库名拼写完全正确,区分大小写,然后选择两种配置方式中的任意一种即可:

方式一:带token的远程地址(临时使用)

git remote remove origin
# 将[TOKEN]替换为你的个人访问令牌,[USER]替换为GitHub用户名,[REPO]替换为仓库名
git remote add origin https://[TOKEN]@github.com/[USER]/[REPO].git
git push -u origin main

方式二:常规弹窗验证(长期使用)

git remote remove origin
# 直接使用普通HTTPS地址,不需要携带token
git remote add origin https://github.com/[USER]/[REPO].git
git push -u origin main

弹出验证窗口时,用户名输入你的GitHub用户名,密码位置直接粘贴PAT即可。

可选优化方案:使用SSH认证

如果不想频繁处理token过期问题,可以改用SSH协议连接GitHub:

  1. 本地生成SSH密钥,将公钥添加到GitHub账户的SSH密钥设置中
  2. 重新配置远程地址:git remote set-url origin git@github.com:[USER]/[REPO].git
  3. 直接执行push操作,无需输入密码或token。

内容的提问来源于stack exchange,提问作者user1245262

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 17:06:04