跳到正文
FunCoding

搜索

搜索文档、智能体、博客、Skill 和 MCP

认证与配置

Copilot CLI 的认证方式(OAuth、环境变量、gh 回退)、令牌类型与存储、BYOK 与离线模式,以及受信任目录和 config.json。

认证

如果你使用自己的 LLM 提供商 API Key(BYOK),则不需要 Copilot 认证;其他任何 Copilot 使用都需要认证。需要认证时,Copilot CLI 支持几种方式,取决于你是交互式工作还是在自动化环境里:

  • OAuth:交互使用的默认和推荐方式,有两种流程:浏览器(web)流程(打开浏览器授权登录,并在本地环回回调上完成)和设备码流程(显示一次性代码)。在 Copilot 里运行 /login,或在终端运行 copilot login
  • 环境变量:推荐用于 CI/CD 流水线、容器和非交互环境。把受支持的令牌设为环境变量(COPILOT_GITHUB_TOKEN、GH_TOKEN 或 GITHUB_TOKEN),CLI 自动使用
  • GitHub CLI 回退:如果你安装并认证了 GitHub CLI(gh,不是 copilot),Copilot 可以自动使用它的令牌。这是优先级最低的方式,只在找不到其他凭据时才启用

认证后,Copilot 记住你的登录并自动用该令牌进行所有 Copilot API 请求;可以用多个账号登录,CLI 记住最后使用的账号。

支持的令牌类型:OAuth 令牌(浏览器或设备流程,前缀 gho_,通过 copilot login 的默认方式)支持;Fine-grained PAT(github_pat_,必须由你的个人账号(而不是组织)拥有,并带有 Copilot Requests 账号权限)支持;GitHub App user-to-server(ghu_,通过环境变量)支持;经典 PAT(ghp_)不支持。

凭据如何存储:默认情况下,CLI 把你的 OAuth 令牌存在操作系统的钥匙串里,服务名为 copilot-cli(macOS 的 Keychain Access、Windows 的 Credential Manager、Linux 的 libsecret(GNOME Keyring、KWallet))。系统钥匙串不可用时(例如没装 libsecret 的无头 Linux 服务器),CLI 会提示你把令牌存到明文配置文件 ~/.copilot/config.json。运行命令时,Copilot 按这个顺序检查凭据:COPILOT_GITHUB_TOKEN 环境变量、GH_TOKEN 环境变量、GITHUB_TOKEN 环境变量、系统钥匙串里的 OAuth 令牌、GitHub CLI(gh auth token)回退。注意:环境变量会静默覆盖已存储的 OAuth 令牌,如果你为别的工具设置了 GH_TOKEN,CLI 会用那个令牌而不是 copilot login 的 OAuth 令牌;要避免意外行为,就取消设置你不想让 CLI 用的环境变量。

未认证使用与离线模式

配置 Copilot 使用你自己的 LLM 提供商 API Key(BYOK)时,Copilot 可以直接连接你配置的提供商,不需要 GitHub 账号或令牌。但没有 GitHub 认证时,这些功能不可用:/delegate(需要在 GitHub 服务器上运行的云端智能体)、GitHub MCP 服务器(需要认证才能访问 GitHub API)、GitHub 代码搜索(需要认证才能查询 GitHub 的搜索索引)。你可以把 BYOK 与 GitHub 认证结合:用你偏好的模型生成 AI 回复,同时访问 GitHub 托管的功能。配置了 BYOK 提供商环境变量(如 COPILOT_PROVIDER_BASE_URL、COPILOT_PROVIDER_API_KEY)时,Copilot 对 AI 模型请求使用它们,无论你的 GitHub 认证状态如何。

离线模式:把 COPILOT_OFFLINE 环境变量设为 true,Copilot 运行时不联系 GitHub 的服务器:不尝试 GitHub 认证;CLI 只向你配置的 BYOK 提供商发起网络请求;遥测被完全禁用。只有当你的 BYOK 提供商是本地的,或在同样的隔离环境内(例如没有外部网络访问的本地部署模型)时,离线模式才是完全气隙的;如果 COPILOT_PROVIDER_BASE_URL 指向远程提供商,数据仍会发给该提供商。

受信任目录

受信任目录控制 Copilot 可以在哪里读取、修改和执行文件。信任一个目录有安全影响。启动 Copilot 会话时,系统会让你确认信任你启动 CLI 的目录及其下的文件。你可以选择信任当前目录:只用于当前运行的会话,或用于本次和未来的会话。选择为未来会话信任后,不会再显示受信任目录提示,只有在你确信该位置始终是 Copilot 运行的安全位置时才选第二种。要编辑永久受信任的目录:打开 CLI 的 config.json 文件(默认在主目录下的 .copilot 文件夹里:macOS/Linux 的 ~/.copilot/config.json、Windows 的 $HOME\.copilot\config.json;可以用 COPILOT_HOME 环境变量更改配置位置),编辑 trustedFolders 数组。

设置允许的工具

可以通过在 Copilot 尝试使用某个工具时响应批准提示,或通过命令行标志指定权限,来控制 Copilot 可以使用哪些工具。Copilot 第一次需要使用可能需要批准的工具时,会问你是否允许,三个选项:1. Yes(只允许这次运行这个具体命令,下次它需要用这个工具时还会再问);2. Yes, and approve TOOL for the rest of the running session(在当前运行的会话期间允许使用该工具,新会话或将来恢复当前会话时会再次请求批准;注意选这个选项时你在允许它在这个会话里使用该工具的任何调用,例如它请求运行 rm ./this-file.txt 而你选了 2,Copilot 就可以在当前会话里不再询问地运行任何 rm 命令,包括 rm -rf ./*);3. No, and tell Copilot what to do differently (Esc)(取消提议的命令并告诉 Copilot 换一种做法)。命令行标志的细节见「权限与工具控制」。