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

如何解决GitHub推送代码时需重复生成令牌的问题?

解决GitHub每次推送需重复生成令牌的问题

GitHub在2021年8月正式移除了密码认证方式,强制使用个人访问令牌(PAT)或SSH密钥进行身份验证。你每次推送都要重新生成令牌,本质是因为没有配置本地凭证存储,导致Git每次都需要重新验证身份。以下是几种可行的解决方法:

方法一:配置Git凭证持久化存储

通过配置Git的凭证助手,让令牌保存在本地系统的安全存储中,无需每次输入:

  • 首先确保你已经生成了带有repo权限的个人访问令牌(生成后务必保存好,GitHub只会显示一次)
  • 临时缓存令牌(默认15分钟):
    git config --global credential.helper cache
    
  • 长期缓存令牌(例如设置缓存1周,单位为秒):
    git config --global credential.helper 'cache --timeout=604800'
    
  • 不同系统的永久存储配置:
    • Windows:
      git config --global credential.helper manager-core
      
    • macOS:
      git config --global credential.helper osxkeychain
      
    • Linux(以Ubuntu为例):
      先安装依赖:
      sudo apt-get install libsecret-1-0 libsecret-1-dev
      
      编译并配置Git凭证助手:
      cd /usr/share/doc/git/contrib/credential/libsecret && sudo make
      git config --global credential.helper /usr/share/doc/git/contrib/credential/libsecret/git-credential-libsecret
      

方法二:改用SSH密钥认证(推荐)

SSH密钥认证无需每次输入令牌,是更便捷安全的方式:

  1. 生成SSH密钥:
    ssh-keygen -t ed25519 -C "你的GitHub绑定邮箱"
    
    按回车使用默认路径和空密码即可。
  2. 将公钥添加到GitHub:
    打开~/.ssh/id_ed25519.pub文件,复制全部内容,粘贴到GitHub账号的「Settings → SSH and GPG keys」页面的「New SSH key」中。
  3. 修改本地仓库的远程地址为SSH格式:
    git remote set-url origin git@github.com:你的GitHub用户名/仓库名.git
    
  4. 测试连接:
    ssh -T git@github.com
    
    看到提示Hi [用户名]! You've successfully authenticated, but GitHub does not provide shell access.即表示配置成功,之后推送拉取无需输入任何凭证。

方法三:将令牌嵌入HTTPS远程地址(不推荐)

如果坚持使用HTTPS,可以直接把令牌写入远程仓库地址,避免每次输入,但存在令牌泄露风险(会保存在.git/config文件中):

git remote set-url origin https://你的令牌@github.com:你的GitHub用户名/仓库名.git

注意事项

  • 生成个人访问令牌时,务必勾选repo权限,否则无法正常推送代码。
  • 如果之前有旧的凭证缓存导致异常,可以执行git credential-cache exit清除临时缓存,或在系统凭证管理器中删除GitHub相关条目。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.20 11:53:16