Skip to content
FunCoding

Search

Search docs, Skills and MCP

认证故障排查

按凭据来源、令牌权限、账号、组织策略和系统钥匙串定位登录失败。

This page has not been translated into English yet. The original Chinese version is shown below.

先确定失败发生在浏览器授权、CLI 获取令牌,还是调用 Copilot 服务时。浏览器已显示成功,并不保证 CLI 正在使用刚保存的账号:令牌环境变量可能具有更高优先级。

按错误定位

现象优先检查处理方向
No authentication information found是否存在 CLI 登录、环境变量或 gh 登录运行 copilot login,或正确提供自动化凭据
401 Unauthorized令牌过期、撤销、权限不足检查令牌状态和 Copilot Requests 权限,必要时重新生成
Classic PAT 被拒绝是否使用 ghp_ 令牌换 fine-grained PAT 或 OAuth
403 / policy denied订阅及组织、企业 CLI 策略核对账号授权并联系管理员处理策略
Keychain unavailable系统凭据库是否可用恢复凭据库访问,或选择适合环境的令牌机制
登录了错误账号环境变量覆盖、多账号选择核对优先级,再使用 /user switch

没有找到凭据

先用 gh auth status 查看 GitHub CLI 状态;这检查的是 gh,不是对 Copilot CLI 所有凭据来源的完整诊断。没有登录时,可以使用 copilot login,也可用 gh auth login 建立回退凭据。

接着确认 COPILOT_GITHUB_TOKEN、GH_TOKEN、GITHUB_TOKEN 是否设置以及来自哪里。检查变量是否存在即可,不要把令牌正文粘贴进问题报告。优先级和 Codespaces 例外见认证与配置。

macOS 可以检查服务对应的凭据条目:

security find-generic-password -s copilot-cli

找不到条目时重新登录;已有条目但确认它失效时,可删除该条目后重新登录:

security delete-generic-password -s copilot-cli
copilot login

删除会清除本地对应凭据,不是普通的只读诊断步骤。

令牌和权限错误

Fine-grained PAT 必须属于个人账号,并在 Account 权限中包含 Copilot Requests。组织拥有的 PAT、过期令牌或缺少权限的令牌,不能通过重复登录提示解决。

Classic PAT 在交互模式会被忽略并显示警告,用户还可通过 /login 选择其他认证方式。在 copilot -p 等非交互模式中,如果它是唯一凭据,CLI 会拒绝启动。不要把这两种行为混为“总是自动回退成功”。

浏览器流程无法返回终端

远程或无头环境可显式运行 copilot login --device-code。设备码流程不要求浏览器访问远程终端上的 loopback 回调。授权组织启用了 SAML SSO 时,还需要完成组织授权。

系统钥匙串不可用

macOS 检查登录钥匙串能否解锁;Windows 检查 Credential Manager 和 Windows Vault 是否可访问。Linux 检查 libsecret 及桌面 keyring 服务:

command -v secret-tool

官方给出的 Debian / Ubuntu 安装示例是 sudo apt install libsecret-1-0 gnome-keyring seahorse。这是平台相关的依赖示例,不适用于所有 Linux 发行版。无头环境如果不能提供钥匙串,可使用受支持的环境变量令牌;接受 CLI 提示的明文存储前应了解其保存位置。

策略或账号问题

403 和 policy denied 可能表示没有可用 Copilot 许可,也可能是管理员关闭了 CLI。重新生成令牌不会改变组织策略。先用 /user 核对账号,再核对该账号的许可和管理设置;有多个账号时使用 /user list 和 /user switch。