Skip to content

报错 The requested URL returned error: 403 解决方法

git 操作(clone/pull/push)或调 GitHub API 时报:

text
fatal: unable to access 'https://github.com/用户/仓库.git/':
The requested URL returned error: 403

403 = Forbidden(被拒绝),不是网络不通,而是"服务器认为你没权限"。成因有几种,对症处理。

先分清哪种 403

场景最可能原因
push 私有仓库报 403凭证无效 / 无写权限
clone 私有仓库报 403未认证 / token 无 repo 权限
调 GitHub API 报 403触发 rate limit(限流)
任何操作都 403代理 / 网关拦截

方法一:凭证问题(最常见)

私有仓库需要有效凭证。GitHub 早已禁用密码认证,必须用 Personal Access Token(PAT):

  1. 生成 PAT(需勾选 repo 权限),做法见 👉 密码认证被移除改用 token;
  2. 更新本地保存的旧凭证(旧密码/过期 token 会一直 403):
bash
# 查看凭证助手
git config --global credential.helper

# Windows:凭据管理器里删除 github.com 条目后重试
# macOS:钥匙串访问里删除 github.com 密码后重试

清掉旧凭证后再次操作,git 会提示重新输入,用户名填 GitHub 用户名、密码填 PAT。

方法二:确认你有该仓库的权限

  • push 别人的仓库会 403——你需要是协作者,或先 fork 到自己账号再 push。
  • 组织仓库可能开了 SSO,PAT 需要授权给该组织(在 token 设置页点 "Enable SSO")。

方法三:GitHub API 限流(403 rate limit)

调 API(或某些工具批量请求)时,未认证的匿名请求限额很低,超了就 403:

bash
# 未认证:60 次/小时;带 token:5000 次/小时
curl -H "Authorization: Bearer <你的PAT>" https://api.github.com/rate_limit

给请求带上 token 即可大幅提升额度。

方法四:代理 / 网关拦截

公司网关或某些代理会对 GitHub 返回 403。可:

  • 换用你自己的干净 代理;
  • 或确认 git 没有误用一个会拦截的代理(检查 git config --global --get http.proxy)。

速查

报错场景解决
push/clone 私有库 403更新 PAT 凭证(方法一)
组织仓库 403给 token 授权 SSO(方法二)
API 403 rate limit请求带 token(方法三)
全都 403查代理/网关(方法四)

小结

  • 403 是权限问题,不是网络断——先分清是凭证、权限还是限流。
  • 私有仓库九成是旧凭证没更新,清掉重新用 PAT。
  • API 403 基本是限流,带上 token 即可。

本文仅供技术学习与研究,请遵守所在国家/地区法律法规。

本站为技术学习交流站点,与 GitHub, Inc. 无任何隶属或官方关系。所有内容仅供技术研究与学习,请遵守所在国家/地区的法律法规。