身份验证错误
如果遇到身份验证错误,请使用下表确定原因和解决方法。
| 問题 | 原因 | 修复 | 详细信息 |
|---|---|---|---|
| 找不到身份验证信息 | 未存储任何凭据 | 运行 copilot login |
[找不到身份验证信息](#no-authentication-information-found) |
| 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 上查看令牌的状态和权限。 令牌必须具有 Copilot Requests 权限。 如有必要,请生成具有所需权限的新令牌。
Token (classic) 被拒绝
以无提示方式忽略开头 ghp_ 的令牌,CLI 的行为就像未设置令牌一样。
原因
Copilot 命令行界面(CLI) 不支持 personal access tokens 经典版本。
修复
生成具有所需范围的细化 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及其依赖项。Bash sudo apt sudo apt list libsecret-1-0 libsecret-1-dev libsecret-common gnome-keyring gnome-keyring-pkcs11 seahorse
sudo apt sudo apt list libsecret-1-0 libsecret-1-dev libsecret-common gnome-keyring gnome-keyring-pkcs11 seahorse -
安装
secret-tool后,搜索密钥环以查找保存的凭据:Bash secret-tool search copilot-cli
secret-tool search copilot-cli如果命令返回一个或多个结果,则密钥器中存在凭据。 再次在终端中运行
copilot login或在 Copilot 命令行界面(CLI) 中运行/login。
帐户错误
对错误的用户进行身份验证,或者令牌属于错误的组织。
原因
存储了多个帐户,或环境变量覆盖了已存储的令牌。
修复
若要切换帐户,请在 CLI 提示符处使用 /user switch ,或者注销 /logout 并使用正确的帐户运行 /login 。