Git push执行失败返回403错误,仓库权限被拒绝如何解决?
Git推送权限报错403排查解决方案
常见关联报错:
remote: Permission to username/repo name denied to "username"
fatal: unable to access https://github.com/username/repositoryname/: The requested URL returned error: 403
1. 基础权限与地址校验
- 确认你对目标仓库拥有可写权限:如果是他人所有的仓库,需被仓库所有者添加为协作者才可直接推送;如果是给公开仓库贡献代码,需先fork仓库到个人账号下,推送至自己的fork仓库后提交Pull Request到原仓库。
- 确认本地绑定的远程仓库地址正确:执行
git remote -v查看当前关联的远程地址,检查用户名、仓库名拼写是否完全匹配,地址错误的话执行git remote set-url origin 正确的HTTPS/SSH仓库地址修正。
2. HTTPS模式认证问题排查
这两个报错是HTTPS连接模式下的典型认证失败问题,按以下步骤排查:
- 清除本地过期的Git凭证缓存:
- Windows系统:打开「控制面板-用户账户-凭据管理器-Windows凭据」,找到github.com对应的凭证条目删除,重新执行推送操作,弹窗时输入认证信息。
- Mac系统:打开「钥匙串访问」,搜索github.com删除对应凭证条目,重新推送即可。
- Linux系统:执行
git config --global --unset credential.helper清除缓存凭证,重新推送时输入认证信息。
- 注意认证时密码字段需填写GitHub个人访问令牌(PAT),GitHub已禁止HTTPS模式使用账号登录密码进行认证,生成PAT时需勾选
repo相关权限,PAT过期或权限不足也会触发403报错。
3. 替代方案:切换为SSH认证模式
如果不想频繁处理PAT凭证问题,可切换为SSH认证模式:
- 本地生成SSH密钥对,将公钥添加到GitHub账号的SSH密钥列表中
- 执行
git remote set-url origin git@github.com:用户名/仓库名.git将远程地址修改为SSH格式,后续推送无需重复输入认证信息。
修复验证
所有调整完成后执行git push测试,即可正常推送代码。
内容的提问来源于stack exchange,提问作者nodeDev
相关产品推荐
相关产品推荐

