跳至主内容

如果你遇到的是 GitHub Copilot 在 VS Code 里一直卡在 Sign in 页面、组织 SSO 授权后仍然提示无权限、或者 Copilot Chat 突然不可用,这篇文章适合你。

先给结论:Copilot 登录失败大多属于这三类:

前置条件github.com 访问不稳定(时通时断),api.github.comcopilot-proxy.githubusercontent.com 需要代理才能稳定使用。建议开启 TUN 模式,确保 VS Code 等桌面应用也走代理。

不适合这篇文章的情况:

先按症状分流

现象更可能的原因先看哪里
VS Code 侧边栏 Copilot 图标一直提示 Sign in未完成 GitHub 账号授权,或 token 完全失效重新走授权流程
浏览器完成授权,VS Code 还是提示未登录deep link 回调失败,IDE 没有接收到授权结果排查 IDE 回调
You are not authorized to use Copilot账号没有有效席位,或组织策略未开启先排查账号权限
组织使用 SAML SSO,登录后 Copilot 仍无法使用OAuth token 未经过 SSO 授权,需要额外授权步骤SSO 额外授权
Copilot Chat 突然停止工作token 过期,需要刷新刷新 token

一、先排查账号权限

登录本身成功不代表有权使用 Copilot。大多数”无权限”报错的根因在这里,而不是客户端。

1. 确认账号有有效的 Copilot 席位

打开 github.com/settings/copilot,查看是否显示 Copilot is active

VS Code 中 Copilot 认证失败状态

如果这里没有显示已激活,几种情况:

VS Code Accounts 菜单

2. 组织管理员层面的策略检查

如果你用的是组织分配的 Copilot,需要管理员在 Organization Settings → Copilot → Policies 里确认以下几项都已开启:

这些策略项目不开,账号层面的 Copilot 再怎么激活也用不了。

3. 学生 / 教育版确认

GitHub Student Developer Pack 包含 Copilot 免费权益,但需要你的学生身份认证仍然有效。如果认证过期或学校邮箱失效,Copilot 权益会自动停止。

检查方式:打开 education.github.com/discount_requests,查看当前认证状态。

二、重新走授权流程

1. IDE 没有接收到回调

Copilot 登录通过 OAuth 完成,授权结果需要从浏览器回传给 VS Code / IDE。如果这一步断了,IDE 会停在等待状态。

GitHub Copilot 官方配置文档截图

VS Code 处理顺序:

  1. 打开命令面板(Ctrl/Cmd + Shift + P
  2. 输入 GitHub Copilot: Sign In,回车
  3. 浏览器打开后,完成 GitHub 登录
  4. 浏览器提示”Open Visual Studio Code”时,必须点击允许,否则回调不会传回 IDE

VS Code Copilot 登录命令

如果浏览器没有弹出”Open Visual Studio Code”提示,说明 deep link 协议没有被系统识别,参考 Linux 下的额外处理步骤。

2. JetBrains IDE 处理顺序

在 IntelliJ IDEA、PyCharm 等 JetBrains 系列 IDE 里:

  1. 打开 Settings → Tools → GitHub Copilot
  2. 点击 Login to GitHub
  3. 如果 IDE 内置浏览器无法完成授权,切到外部浏览器完成后手动复制 token 粘贴回 IDE

3. 命令行 (gh CLI) 备用登录

如果 IDE 回调持续失败,可以先用 gh CLI 完成 GitHub 授权,再重启 IDE:

# 安装 gh CLI(如果还没有安装)
# macOS
brew install gh

# 登录 GitHub
gh auth login

# 按提示选择 GitHub.com → HTTPS → 用浏览器登录
# 登录完成后,VS Code 的 Copilot 插件通常会自动识别

三、SAML SSO 组织的额外授权步骤

GitHub SSO 配置界面

如果你的组织启用了 SAML SSO,只完成普通的 GitHub 登录不够——还需要单独对 Copilot OAuth App 做 SSO 授权,否则 token 对组织来说是无效的。

1. 为现有 token 授权 SSO

  1. 打开 github.com/settings/tokens
  2. 找到 GitHub Copilot PluginVS Code 相关的 token
  3. 点击 Configure SSO,然后点击对应组织名旁的 Authorize

打开 github.com/settings/tokens 后,在 token 列表里找到 Copilot 相关的 token,点击 Configure SSO 即可看到组织列表,逐一点击 Authorize 完成授权。

2. 重新走登录流程时授权 SSO

重新登录时,浏览器会显示一个授权页面,列出要求访问的组织。在这里,必须逐一点击每个组织名旁的 Authorize,才能完成 SSO 授权。只点”Authorize GitHub Copilot”按钮是不够的。

3. SSO 会话过期后的刷新

SSO 会话有超时时间(由你的组织 IdP 配置决定,通常 8 小时到 30 天不等)。会话过期后,即使 GitHub 本身还是登录状态,Copilot 的 SSO 授权也会失效。

这种情况下:

  1. 在 VS Code 命令面板执行 GitHub Copilot: Sign Out
  2. 重新执行 GitHub Copilot: Sign In,走完整的 SSO 授权流程

四、token 过期,刷新方法

1. VS Code 里刷新 token

命令面板 → "GitHub Copilot: Sign Out" → 重新 "GitHub Copilot: Sign In"

如果仅退出登录再登录不够用,试着清理 VS Code 里的认证缓存:

Windows:

Remove-Item -Recurse -Force "$env:APPDATA\Code\User\globalStorage\github.copilot"

macOS:

rm -rf ~/Library/Application\ Support/Code/User/globalStorage/github.copilot

Linux:

rm -rf ~/.config/Code/User/globalStorage/github.copilot

清理后重启 VS Code,重新登录。

2. gh CLI 刷新 token

gh auth refresh
# 或者完整重新登录
gh auth logout
gh auth login

五、代理 / 防火墙排查

1. 换节点对照测试

如果当前代理出口登录失败,换一个不同的节点再试。如果换节点后能成功,说明原出口 IP 被 GitHub 标记或节点质量差。

不要尝试”关闭代理测试”——国内移动数据访问 github.com 同样不稳定,脱离代理无法排查任何问题。对照方式是换节点

2. 配置 VS Code 代理

如果确认是代理问题,在 VS Code 设置里手动配置:

// settings.json
{
  "http.proxy": "http://proxy.company.com:8080",
  "http.proxyStrictSSL": false
}

3. 企业防火墙需要放行的域名

六、排查顺序别反

  1. 先确认代理可用(TUN 模式最稳),确保 VS Code 桌面进程也走代理
  2. 确认账号有有效席位,组织策略已开启(需访问 github.com/settings/copilot)
  3. 再看 SSO 授权是否完成(针对 SAML 组织)
  4. 再试退出登录、重新走 Sign In 流程
  5. 再清理本地 token 缓存
  6. 登录失败时换节点对照,而不是脱离代理测试

如果你同时遇到其他 AI 工具的登录问题,可以参考主流 AI 开发工具登录问题排障索引,里面收录了 Cursor、Windsurf、Claude Code、ChatGPT 等工具的通用三步定位方法。

参考来源

Previous
Claude Code 登录失败怎么办?从 OAuth 回调到 WSL2 stdin 冻结的完整排查
Next
Cursor 登录失败怎么办?从浏览器不回跳到 www. 前缀技巧的完整排查