问题:
git push突然推代码需要登陆,但是用户名和密码正确输入后,却提示403
bash
git push
# Username for 'https://github.com': ****
#Password for 'https://gyp-programmer@github.com':
#remote: Permission to gyp-programmer/my-app.git denied to ****.
#fatal: unable to access 'https://github.com/****/my-app.git/': The requested URL returned error: 403
分析
GitHub 在 2021年8月13日 移除了对密码认证的支持。如果你尝试使用 HTTPS 方式推送代码,并且输入的是 GitHub 账户的密码,可能就会遇到这个问题.
正常情况只有开启2FA才会出现,不过方案是一样的。出现同样的问题,就按照以下的方案解决!
github issues给到的建议
然后经过尝试,可以解决,这里博主就直接把答案给大家,遇到了就按照一下解决方案处理即可,亲测有效!
解决方案
使用 Personal Access Token (PAT) 替代密码
GitHub 推荐使用 Personal Access Token (PAT) 代替密码进行 HTTPS 认证。
- 生成 Personal Access Token:
-
登录 GitHub,点击右上角头像,进入 Settings。
-
在左侧菜单中,选择 Developer settings。
-
点击 Personal access tokens,然后点击 Generate new token。
-
选择需要的权限(例如 repo 和 workflow),然后生成 Token。
-
复制生成的 Token
- 使用 Token 进行认证:
Git 提示你输入用户名和密码处: 在用户名处输入你的 GitHub 用户名。在密码处粘贴刚刚复制的 Personal Access Token。
贴图步骤
- 找到设置,点进去
- 在设置页面,翻到最下面,侧边栏,点击
Developer settings
- 在developer settings页面,点击
Fine-grained tokens

-
在当前内容页面,点击
generate new token
-
进去创建页面,需要关注的几个点
- 必填项输入;
- token有效期,按需选择,支持自定义;
- 选择仓库类型,所有仓库或者去选择某个仓库(根据自己实际使用情况,安全第一)

- 加入需要添加的权限,这里有仓库权限和账户权限两组,都需要去点击后在展开的选项中选择权限使用类型;
- 如果不知道应该怎么选择,可以全选上,然后有效期设置一天就行;
- 不过呢,每一项权限都有说明,比较清晰,可以抉择使用(推荐)
思路
这里给大家提供一个别的方案,有可能的解决方案,就是清理本地的git认证信息, 重新认证。例如如果你之前是https的仓库,那你可以把直接登陆的 credentials 清除!(没尝试过)
写在最后
如果该文有帮到我的铁子们,那就帮忙点赞支持一下! 感谢大家,制作不易,多多支持!