VS Code 安装 GitHub Copilot 插件后显示 401 未授权错误,通常是因为本地认证令牌过期或网络无法连接 GitHub 验证服务。最推荐的处理方向是退出当前 GitHub 账号并重新登录,适用场景为个人开发环境,风险边界在于重新登录可能需重新配置部分本地权限。
先说结论:401 错误核心在于身份验证失败,优先重置登录状态并检查订阅有效性。
- 先确认:GitHub 账号 Copilot 订阅是否处于 active 状态
- 先处理:在 VS Code 账号管理中执行 Sign Out 再 Sign In
- 再验证:观察底部状态栏 Copilot 图标是否变为可用状态
命令速用版
通过 VS Code 命令面板快速重置认证会话,无需重启软件。
1. 按下 Ctrl+Shift+P (Mac: Cmd+Shift+P) 打开命令面板
2. 输入 "GitHub Copilot: Sign Out" 并回车
3. 输入 "GitHub Copilot: Sign In" 并回车
4. 按提示在浏览器中完成授权
为什么会这样
401 未授权错误表明 VS Code 持有的 GitHub Access Token 已失效或被服务器拒绝。
主要原因包括本地存储的认证令牌过期、GitHub 服务端会话失效、或者网络请求被拦截导致验证信息无法送达。插件无法通过 GitHub API 验证当前用户是否拥有 Copilot 使用权,因此返回 401 状态码。
分步处理
按顺序执行以下步骤,每步完成后检查错误是否消失。
步骤 1:检查 GitHub 订阅状态
登录 GitHub 网页版,进入 Settings > Copilot,确认订阅状态为 Active。如果订阅过期,插件端无论如何操作都会报 401。
步骤 2:重置 VS Code 登录状态
点击 VS Code 左下角账号图标,选择退出 GitHub 账号。随后重新点击登录,选择 "Sign in with GitHub",确保浏览器跳转授权成功。
步骤 3:检查网络 Proxy 配置
如果身处企业网络或特定网络环境,检查 VS Code 设置中的 Proxy 配置。进入 File > Preferences > Settings,搜索 "Proxy",确认代理地址是否正确或尝试清空代理测试直连。
步骤 4:清除本地凭证缓存
Windows 用户可在凭据管理器中删除 GitHub 相关凭证;Mac 用户在钥匙串中删除 GitHub 相关条目。此举强制 VS Code 重新获取令牌。
怎么验证是否生效
查看 VS Code 底部状态栏右侧的 Copilot 图标。
生效标志为图标显示为实心且无斜杠,鼠标悬停显示 "GitHub Copilot is ready"。尝试编写代码注释,看是否出现灰色建议文本。
常见坑
- 企业账号权限:使用 GitHub Enterprise 账号时,需管理员在组织设置中明确分配 Copilot 席位。
- 多账号冲突:本地同时登录了个人号和企业号,插件可能默认使用了无订阅的账号进行验证。
- 防火墙拦截:公司防火墙可能拦截 api.github.com 域名,导致验证请求超时而非直接报错。
常见问题
订阅有效为什么还报 401?
本地令牌缓存可能已损坏。请执行完全退出登录并清除系统凭证缓存后重试。
公司网络无法登录怎么办?
联系 IT 部门确认是否放行 github.com 及相关 API 域名,或在 VS Code 设置中配置正确的代理地址。
个人版和企业版账号能混用吗?
不建议混用。请在 VS Code 账号管理中只保留拥有 Copilot 权限的那个账号登录。
参考来源
- GitHub Docs, "Troubleshooting GitHub Copilot", https://docs.github.com/en/copilot/troubleshooting-github-copilot
- GitHub Docs, "Getting started with GitHub Copilot", https://docs.github.com/en/copilot/using-github-copilot/getting-started-with-github-copilot