跳至主要内容

为 GitHub Copilot 配置网络设置

你可以通过 HTTP 代理连接到 Copilot 并使用自定义证书。

谁可以使用此功能?

GitHub Copilot 个人版或 GitHub Copilot 商业版。

注意:目前无法在 Visual Studio for Mac 中使用 GitHub Copilot。

简介

默认情况下,GitHub Copilot 通过安全 HTTPS 连接直接从你的环境连接到 GitHub 服务器。你无需配置任何其他网络设置即可使用 Copilot。

一些网络使用 HTTP 代理服务器在将 Internet 流量发送到其目标位置之前对其进行拦截。公司通常使用 HTTP 代理来检测可疑流量或限制进入其网络的内容。如果你在公司网络上工作,则可能需要配置 Copilot 以通过 HTTP 代理进行连接。

为 GitHub Copilot 配置代理设置

GitHub Copilot 支持基本的 HTTP 代理设置。如果你需要对代理进行身份验证,GitHub Copilot 支持基本身份验证或 Kerberos 身份验证。如果代理 URL 以 https:// 开头,则当前不支持该代理。

你可以在所选编辑器中为 GitHub Copilot 配置 HTTP 代理。要查看编辑器的说明,请使用本文顶部的选项卡。

如果你没有直接在编辑器中配置代理,GitHub Copilot 会检查是否在以下任何环境变量中设置了代理 URL,这些变量按优先级从高到低列出。

  • HTTPS_PROXY
  • https_proxy
  • HTTP_PROXY
  • http_proxy

注意:你可以使用其中任何一个变量来存储标准 HTTP 代理的 URL。在标准用法中,这些变量的 httphttps 部分指的是正在进行的请求的类型,而不是代理本身的 URL。GitHub Copilot 不会遵循此约定,而是使用优先级最高的变量中存储的 URL 作为 HTTP 和 HTTPS 请求的代理。

如果你已经配置了代理但仍然遇到连接错误,请参阅“GitHub Copilot 的网络错误故障排除”。

在 JetBrains IDE 中配置代理

  1. 在 JetBrains IDE 中,单击文件菜单(Windows)或菜单栏中的应用程序名称(macOS),然后单击设置

  2. 外观和行为下,单击系统设置,然后单击HTTP 代理

  3. 选择手动代理配置,然后选择HTTP

  4. 在“主机名”字段中,输入代理服务器的主机名,在“端口号”字段中,输入代理服务器的端口号。

  5. 或者,若要将 Copilot 配置为忽略证书错误,请在左侧边栏中单击工具,单击服务器证书,然后选择或取消选择自动接受不受信任的证书

    警告:忽略证书错误可能会导致安全问题,因此不建议这样做。

基本身份验证

GitHub Copilot for JetBrains 支持基本身份验证。若要进行身份验证,可以在“手动代理配置”页面上选择代理身份验证,然后输入您的凭据。

这会将您的凭据以纯文本形式存储在编辑器的设置中。或者,您可能更愿意将您的凭据包含在代理 URL 中(例如:http://USERNAME:[email protected]:5187/),然后将此 URL 设置为“为 GitHub Copilot 配置代理设置”中列出的受支持环境变量之一。

在 Visual Studio Code 中配置代理

  1. 文件菜单中,导航到首选项并单击设置

    Screenshot of Visual Studio Code settings.

  2. 在设置选项卡的左侧面板中,单击应用程序,然后选择代理

  3. 在“代理”下的文本框中,键入代理服务器的地址,例如 https://127.0.0.1:3128

  4. 或者,若要将 Copilot 配置为忽略证书错误,请在“代理严格 SSL”下选择或取消选择该复选框。

    警告:忽略证书错误可能会导致安全问题,因此不建议这样做。

基本身份验证

GitHub Copilot for VS Code 支持基本身份验证。若要进行身份验证,您可以在代理 URL 中包含您的凭据,例如:http://USERNAME:[email protected]:5187/。您可以在 VS Code 设置中或“为 GitHub Copilot 配置代理设置”中列出的环境变量之一中存储此 URL。

在 Visual Studio 中配置代理

GitHub Copilot for Visual Studio 从 Windows 读取代理设置。有关在 Windows 上配置代理设置的信息,请参阅 Microsoft 文档中的“在 Windows 中使用代理服务器”中的“手动设置代理服务器连接”下的说明。

基本身份验证

Visual Studio 中的 GitHub Copilot 不会从 Windows 设置中检索身份验证凭据。如果您需要对代理进行身份验证,则可以将您的凭据包含在代理 URL 中(例如:http://USERNAME:[email protected]:5187/),然后将此 URL 设置为 "为 GitHub Copilot 配置代理设置" 中列出的受支持环境变量之一。

使用 Kerberos 进行身份验证

Kerberos 是一种身份验证协议,允许用户和服务相互证明其身份。当用户成功进行身份验证时,身份验证服务会向用户授予一张票证,允许用户在一段时间内访问服务。网络管理员可能更喜欢 Kerberos 而不是基本身份验证,因为它更安全,并且不需要发送未加密的凭据。

GitHub Copilot 支持使用 Kerberos 对代理进行身份验证。要使用 Kerberos,您必须在您的机器上安装适用于您操作系统的适当 krb5 库,并拥有代理服务的活动票证(通过 kinit 命令手动创建或由另一个应用程序创建)。您可以使用 klist 命令检查您是否拥有代理服务的票证。

Kerberos 使用服务主体名称 (SPN) 来唯一标识服务实例。默认情况下,SPN 从代理 URL 中派生。例如,如果代理 URL 为 http://proxy.example.com:3128,则 SPN 为 HTTP/proxy.example.com

如果默认 SPN 对您的代理不正确,则可以在 VS Code 和 JetBrains IDE 中覆盖 SPN。您目前无法在 Visual Studio 中覆盖默认 SPN。但是,您可以使用环境变量 AGENT_KERBEROS_SERVICE_PRINCIPAL 为 Visual Studio 和 JetBrains IDE 覆盖 SPN。

在 VS Code 中覆盖默认 SPN

  1. Shift+Command+P (Mac)/Ctrl+Shift+P (Windows/Linux) 打开 VS Code 命令面板。

  2. 键入 settings,然后单击首选项:打开用户设置 (JSON)

  3. 在 JSON 对象中,添加以下顶级属性,将 YOUR-SPN 替换为代理服务的正确 SPN。

    JSON
    "http.proxyKerberosServicePrincipal": "YOUR-SPN",
    

覆盖 JetBrains IDE 中的默认 SPN

  1. 在 JetBrains IDE 中,单击文件菜单(Windows)或菜单栏中的应用程序名称(macOS),然后单击设置
  2. 在左侧边栏中,单击语言和框架,然后单击GitHub Copilot
  3. 在“高级”部分的“覆盖 Kerberos 代理服务主体名称”字段中,键入代理服务的 SPN。

允许 GitHub Copilot 使用自定义证书

Copilot 可以读取安装在用户计算机上的自定义 SSL 证书。这允许将代理服务器标识为 Copilot 安全连接的预期接收者,以便检查网络流量。如果没有自定义证书,则可以使用 HTTP 代理来监视、路由和终止 Copilot 的连接,但不能检查流量的内容。

Copilot 从操作系统的信任存储中读取证书。它还从标准 Node.js 环境变量 NODE_EXTRA_CA_CERTS 指定的文件中读取其他证书。有关更多信息,请参阅Node.js 文档

无论是否在用户的计算机上直接配置代理,Copilot 都可以读取证书。这允许 Copilot 支持透明代理或 Zscaler 等设置。

安装自定义证书

通常,如果你使用的是公司设备,则公司的 IT 部门应该已经在你的计算机上安装了任何必需的证书。如果你需要安装证书,请参阅以下说明。

警告:安装自定义证书是指示你的计算机信任证书的创建者,这可能会允许创建者拦截来自你计算机的所有互联网流量。你应该非常小心地验证你是否安装了正确的证书。

如果你已经安装了证书但 Copilot 没有检测到它,请参阅“GitHub Copilot 的网络错误故障排除”。