WSL终端Git推送GitHub需Personal Access Token,Git Bash无需,如何解决?
解决WSL中Git推送需输入Token的问题
原因
Git Bash能自动完成推送,是因为它默认使用Windows的凭据管理器存储了你的GitHub凭据;而WSL里的Git默认没配置关联这个凭据管理器,所以每次推送都要手动输入用户名和Token。
解决方案
方法1:配置WSL的Git使用Windows凭据管理器
在WSL终端执行以下命令,让WSL的Git调用Windows的凭据助手,复用已存储的凭据:
git config --global credential.helper "/mnt/c/Program\ Files/Git/mingw64/bin/git-credential-manager-core.exe"
如果你的Git安装路径不同,调整上述命令里的路径即可。
方法2:在WSL中配置Git凭据缓存
如果不想依赖Windows的凭据管理器,可以配置WSL本地的凭据缓存,让Git记住你的Token:
- 先设置全局用户名和邮箱(未设置过的话):
git config --global user.name "你的GitHub用户名" git config --global user.email "你的GitHub绑定邮箱"
- 配置临时缓存(比如缓存1小时,即3600秒):
git config --global credential.helper 'cache --timeout=3600'
或者设置永久缓存(以Ubuntu为例,需先安装依赖工具):
sudo apt install libsecret-1-0 libsecret-1-dev 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
第一次推送输入Token后,后续操作就无需重复输入。
方法3:改用SSH连接GitHub
生成SSH密钥并添加到GitHub账户,推送时无需输入用户名和Token:
- 在WSL终端生成SSH密钥:
ssh-keygen -t ed25519 -C "你的GitHub绑定邮箱"
一路回车使用默认设置即可。
2. 复制公钥内容:
cat ~/.ssh/id_ed25519.pub
- 登录GitHub,进入「Settings」→「SSH and GPG keys」,点击「New SSH key」,粘贴公钥内容并保存。
- 将仓库的远程地址从HTTPS改为SSH:
git remote set-url origin git@github.com:你的用户名/仓库名.git
之后推送即可直接完成,无需输入凭据。
内容的提问来源于stack exchange,提问作者Zubair Ansari
相关产品推荐
相关产品推荐

