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

无法从Git授权GitHub,提交代码后无法推送问题求助

解决Git推送GitHub时的授权失败问题

这问题我碰到过好多次了,核心原因是GitHub早在2021年8月就彻底停用了账户密码作为Git HTTPS操作的凭据——网页登录的密码和Git命令行的授权机制已经完全分开,所以你网页能正常登录,但在Git里输入账户密码肯定会触发授权失败。

下面给你两种靠谱的解决方法,选一种适合你的就行:

方法一:用个人访问令牌(PAT)替代密码

这是最直接的临时解决方案,适合不想改远程地址的情况:

  • 登录GitHub网页,点击右上角头像 → Settings → Developer settings → Personal access tokens → Tokens (classic)
  • 点击Generate new token,给令牌起个好记的名字(比如Git Push Token),勾选repo权限(如果是私有仓库,确保相关权限都勾上),设置合适的过期时间,然后点击生成
  • 一定要复制生成的令牌并妥善保存——GitHub只会显示这一次,刷新页面就看不到了
  • 回到终端重新执行git push,当提示输入密码时,把刚才复制的PAT粘贴进去就可以完成推送了

如果不想每次推送都输令牌,可以配置本地凭据缓存:

git config --global credential.helper store

执行后第一次输入PAT会被存在~/.git-credentials文件里,后续推送就自动用这个凭据了。

方法二:改用SSH密钥登录(更推荐,一劳永逸)

SSH密钥配置好后,后续所有Git操作都不用再输凭据,非常省心:

  1. 生成SSH密钥:在终端执行以下命令,一路回车用默认设置就行:
ssh-keygen -t ed25519 -C "ramazanemreosmanoglu@gmail.com"
  1. 查看并复制生成的公钥:
cat ~/.ssh/id_ed25519.pub

把输出的全部内容复制下来。
3. 回到GitHub网页,点击右上角头像 → Settings → SSH and GPG keys → New SSH key
4. 粘贴刚才复制的公钥内容,给密钥起个名字(比如Fedora Workstation),然后保存。
5. 将本地仓库的远程地址从HTTPS改为SSH:

git remote set-url origin git@github.com:ramazanemreosmanoglu/dynamic-wallpaper.git
  1. 测试SSH连接是否成功:
ssh -T git@github.com

如果看到类似Hi ramazanemreosmanoglu! You've successfully authenticated, but GitHub does not provide shell access.的提示,就说明配置成功了,之后再执行git push就不会有授权问题了。

额外排查点

  • 你已经设置了全局的user.name和user.email,可以再用git config --global --list确认一下是否正确
  • 如果之前输错密码导致本地缓存了错误凭据,可以执行git config --global --unset credential.helper清除缓存,之后重新输入正确的PAT或配置SSH

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.11 08:16:52