403 原因、解决方案

# 403 原因

前置条件:不是网络问题(SSL Connection Reset)、使用 idea 可以推送但用 vscode 就会 403

推测 403(Permission Denied)是由于 VSCode 自带的扩展 "GitHub" 登录 GitHub 账号时请求的权限不足导致。

当使用 "GitHub" 扩展登录账号时,请求的权限可能只有 private repo ,所以其他你拥有权限但不是你独有的仓库,当使用 Git: 克隆 查找 GitHub 项目时,这些仓库也不会显示在列表中,并且搜索也不会起作用,当你从本地推送云端时,也会出现权限不足的问题。

终端输出大致如下:

> git push origin main:main
remote: Permission to xxx/xxx denied to xxx.
fatal: unable to access 'https://github.com/xxx/xxx.git/': The requested URL returned error: 403

# 解决方案

  1. 对权限不足的项目更改 origin.url,使用独立认证

    更改 remote 地址如: https://{token}@github.com/xxx/xxx.git (token 指的是 Personal access tokens)

  2. 使用 git 全局配置

    执行如下命令: git config --global url."https://{token}@github.com".insteadOf "https://github.com"
    或者

    > git config --global github.token <你的GitHub token>
    > git config --global github.user <github上的用户名>