注意:目前无法在 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。在标准用法中,这些变量的 http
和 https
部分指的是正在进行的请求的类型,而不是代理本身的 URL。GitHub Copilot 不会遵循此约定,而是使用优先级最高的变量中存储的 URL 作为 HTTP 和 HTTPS 请求的代理。
如果你已经配置了代理但仍然遇到连接错误,请参阅“GitHub Copilot 的网络错误故障排除”。
在 JetBrains IDE 中配置代理
-
在 JetBrains IDE 中,单击文件菜单(Windows)或菜单栏中的应用程序名称(macOS),然后单击设置。
-
在外观和行为下,单击系统设置,然后单击HTTP 代理。
-
选择手动代理配置,然后选择HTTP。
-
在“主机名”字段中,输入代理服务器的主机名,在“端口号”字段中,输入代理服务器的端口号。
-
或者,若要将 Copilot 配置为忽略证书错误,请在左侧边栏中单击工具,单击服务器证书,然后选择或取消选择自动接受不受信任的证书。
警告:忽略证书错误可能会导致安全问题,因此不建议这样做。
基本身份验证
GitHub Copilot for JetBrains 支持基本身份验证。若要进行身份验证,可以在“手动代理配置”页面上选择代理身份验证,然后输入您的凭据。
这会将您的凭据以纯文本形式存储在编辑器的设置中。或者,您可能更愿意将您的凭据包含在代理 URL 中(例如:http://USERNAME:[email protected]:5187/
),然后将此 URL 设置为“为 GitHub Copilot 配置代理设置”中列出的受支持环境变量之一。
在 Visual Studio Code 中配置代理
-
在文件菜单中,导航到首选项并单击设置。
-
在设置选项卡的左侧面板中,单击应用程序,然后选择代理。
-
在“代理”下的文本框中,键入代理服务器的地址,例如
https://127.0.0.1:3128
。 -
或者,若要将 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
-
按 Shift+Command+P (Mac)/Ctrl+Shift+P (Windows/Linux) 打开 VS Code 命令面板。
-
键入
settings
,然后单击首选项:打开用户设置 (JSON)。 -
在 JSON 对象中,添加以下顶级属性,将
YOUR-SPN
替换为代理服务的正确 SPN。JSON "http.proxyKerberosServicePrincipal": "YOUR-SPN",
"http.proxyKerberosServicePrincipal": "YOUR-SPN",
覆盖 JetBrains IDE 中的默认 SPN
- 在 JetBrains IDE 中,单击文件菜单(Windows)或菜单栏中的应用程序名称(macOS),然后单击设置。
- 在左侧边栏中,单击语言和框架,然后单击GitHub Copilot。
- 在“高级”部分的“覆盖 Kerberos 代理服务主体名称”字段中,键入代理服务的 SPN。
允许 GitHub Copilot 使用自定义证书
Copilot 可以读取安装在用户计算机上的自定义 SSL 证书。这允许将代理服务器标识为 Copilot 安全连接的预期接收者,以便检查网络流量。如果没有自定义证书,则可以使用 HTTP 代理来监视、路由和终止 Copilot 的连接,但不能检查流量的内容。
Copilot 从操作系统的信任存储中读取证书。它还从标准 Node.js 环境变量 NODE_EXTRA_CA_CERTS
指定的文件中读取其他证书。有关更多信息,请参阅Node.js 文档。
无论是否在用户的计算机上直接配置代理,Copilot 都可以读取证书。这允许 Copilot 支持透明代理或 Zscaler 等设置。
安装自定义证书
通常,如果你使用的是公司设备,则公司的 IT 部门应该已经在你的计算机上安装了任何必需的证书。如果你需要安装证书,请参阅以下说明。
警告:安装自定义证书是指示你的计算机信任证书的创建者,这可能会允许创建者拦截来自你计算机的所有互联网流量。你应该非常小心地验证你是否安装了正确的证书。
- 对于 Windows,请参阅 Microsoft 文档中的安装受信任的根证书。
- 对于 macOS,请参阅 Keychain Access 用户指南中的使用 Keychain Access 在钥匙串中添加证书。
- 对于 Linux,请参阅 Ubuntu 文档中的在信任存储中安装根 CA 证书。类似的说明应该适用于大多数 Linux 发行版。
如果你已经安装了证书但 Copilot 没有检测到它,请参阅“GitHub Copilot 的网络错误故障排除”。