身份验证错误
如果遇到身份验证错误,请使用下表确定原因和解决方法。
| 問题 | 原因 | 修复 | 详细信息 |
|---|---|---|---|
| 找不到身份验证信息 | 未存储任何凭据 | 运行 copilot login | |
| 找不到身份验证信息 | |||
| 401 未授权 | 令牌吊销或权限不足 | 使用特定权限生成令牌 | |
| 令牌已过期或已吊销 | |||
| Token (classic) 拒绝 | Token (classic)(ghp_) | 使用细粒度 personal access token | Token (classic) 拒绝 |
| 403 已禁止或策略被拒绝 | |||
| Copilot 许可证或企业/组织策略 | 检查订阅和组织配置 | ||
| Access被拒绝 | |||
| 密钥链不可用 | 缺少系统密钥链 | 安装 libsecret 或允许纯文本 | |
| 钥匙串访问失败 | |||
| 帐户错误 | 多个帐户或环境变量替代 | 检查环境变量,使用 /user switch | |
| 帐户错误 |
找不到身份验证信息
Copilot CLI 显示以下错误:
Error: No authentication information found
Copilot can be authenticated with GitHub using an OAuth Token or a Fine-Grained Personal Access Token
原因
在所有检查过的位置都没有发现凭据。
修复
使用以下步骤查找缺少身份验证的位置并恢复访问权限。
检查身份验证状态
gh auth status
gh auth status
如果看到一条消息,提示你未登录,请使用 gh auth login 登录或通过 copilot login 使用 OAuth 流。
检查是否已设置身份验证环境变量
如果使用环境变量,请检查是否设置了环境变量COPILOT_GITHUB_TOKEN``GH_TOKEN或GITHUB_TOKEN环境变量:
echo $COPILOT_GITHUB_TOKEN
echo $COPILOT_GITHUB_TOKEN
如果命令不打印任何内容,则不会设置变量。 将变量设置为有效的令牌。 若要生成令牌,请参阅 对 GitHub Copilot CLI 进行身份验证。
export COPILOT_GITHUB_TOKEN=PERSONAL_ACCESS_TOKEN
export COPILOT_GITHUB_TOKEN=PERSONAL_ACCESS_TOKEN
macOS 密钥链
security find-generic-password -s copilot-cli
security find-generic-password -s copilot-cli
如果未找到任何项,请再次进行身份验证,或使用/login 或 copilot login 来创建一项。
如果找到某个项,但身份验证仍然失败,请删除保存的凭据,然后再次进行身份验证, /login 或者 copilot login:
security delete-generic-password -s copilot-cli
security delete-generic-password -s copilot-cli
令牌已过期或已吊销
Copilot CLI 显示以下错误:
Error: Authentication failed
Your GitHub token may be invalid, expired, or lacking the required permissions.
To resolve this, try the following:
• Start 'copilot' and run the '${LOGIN_COMMAND}' command to re-authenticate
• If using a Fine-Grained PAT, ensure it has the 'Copilot Requests' permission enabled
• If using COPILOT_GITHUB_TOKEN, GH_TOKEN or GITHUB_TOKEN environment variable, verify the token is valid and not expired
• Run 'gh auth status' to check your current authentication status
原因
令牌已被吊销、已过期或创建时未具备所需权限。
修复
查看 GitHub 上的令牌状态和权限。 该令牌必须是你的fine-grained personal access token(非组织帐户)拥有的 ****,且具有 Copilot 请求权限。 如有必要,请生成具有所需权限的新令牌。
Token (classic) 拒绝
以 ghp_ 开头的令牌会被拒绝。 接下来会发生什么取决于运行 Copilot CLI方式。
在交互式会话中,传统的 personal access token 会被忽略,CLI 会继续运行,因此你可以通过其他方式进行身份验证,例如使用 /login。
Copilot CLI 显示如下所示的警告,为保存令牌的环境变量命名:
Classic Personal Access Tokens (ghp_) are not supported. GITHUB_TOKEN contains a classic PAT and will be ignored. Use /login to authenticate, or replace it with a fine-grained PAT.
在非交互式使用(例如 copilot -p 或其他自动化)中,如果经典 personal access token 凭据是唯一可用的凭据,CLI 将拒绝启动并显示以下错误,并命名保存令牌的环境变量:
Error: Classic Personal Access Tokens (ghp_) are not supported by Copilot.
The GITHUB_TOKEN environment variable contains a classic PAT.
Please use a Fine-Grained Personal Access Token or another authentication method.
To fix this, you can:
• Replace the token in GITHUB_TOKEN with a fine-grained PAT
• Unset GITHUB_TOKEN and run 'gh auth login' to authenticate
• Unset GITHUB_TOKEN and start 'copilot', then use the '/login' command
原因
经典 personal access tokens 版不被 Copilot CLI 支持。
修复
生成包含所需范围的精细 personal access token。
访问被拒绝
Copilot CLI 显示以下错误之一:
Error: Access denied by policy settings
Your Copilot CLI policy setting may be preventing access. This can happen when:
• Your organization has restricted Copilot access
• Your Copilot subscription does not include this feature
• Required policies have not been enabled by your administrator
To resolve this, visit your Copilot settings:
原因
组织策略会阻止 GitHub Copilot CLI或用户帐户缺少 GitHub Copilot 许可证。
修复
- 检查你的帐户拥有有效的 GitHub Copilot 许可证。
- 要求组织管理员在组织策略中启用 GitHub Copilot CLI 。
密钥链访问失败
登录期间,CLI 会提示你系统密钥链不可用,并询问是否以纯文本形式存储凭据。
System keychain unavailable. Store token in plaintext config file? (y/N)
原因
系统密钥链不可访问。 这可能会发生在没有 libsecret 无头服务器的 Linux 系统上,或发生在存在权限问题的系统上。
修复
按照操作系统对应的步骤恢复安全凭据存储。
macOS 或 Windows
在 macOS 上,确保“钥匙串访问”应用可用,并且你可以解锁你的登录钥匙串。
在 Windows 上,确认凭据管理器可用,并确保可以访问 Windows 保管库。
如果无法访问系统凭据管理器,请使用纯文本存储(根据提示)或使用环境变量令牌进行身份验证,然后重新运行 /login 或 copilot login。
Linux
在 Linux 上,使用系统密钥环或以纯文本形式存储凭据。
-
检查
secret-tool是否已安装:Bash command -v secret-tool
command -v secret-tool -
如果未找到
secret-tool,或者搜索命令不返回任何结果,请安装libsecret及其依赖项。 例如,在 Debian 和 Ubuntu 上,可以使用以下命令。Bash sudo apt install libsecret-1-0 gnome-keyring seahorse
sudo apt install libsecret-1-0 gnome-keyring seahorse -
安装
secret-tool后,搜索密钥环以查找保存的凭据:Bash secret-tool search copilot-cli
secret-tool search copilot-cli如果命令返回一个或多个结果,则密钥器中存在凭据。 在终端中运行
copilot login或在/login中再次运行Copilot CLI。
帐户错误
对错误的用户进行身份验证,或者令牌属于错误的组织。
原因
存储了多个帐户,或环境变量覆盖了已存储的令牌。
修复
若要切换帐户,请在 CLI 提示符处使用 /user switch ,或者注销 /logout 并使用正确的帐户运行 /login 。