注意:目前无法在 Visual Studio for Mac 中使用 GitHub Copilot。
简介
默认情况下,GitHub Copilot 通过安全 HTTPS 连接直接从你的环境连接到 GitHub 的服务器。你无需配置任何其他网络设置即可使用 Copilot。
一些网络使用 HTTP 代理服务器在将互联网流量发送到其预期位置之前对其进行拦截。公司通常使用 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 中使用代理服务器 中“手动设置代理服务器连接”下的说明。
基本认证
GitHub Copilot for Visual Studio 不会从 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 对象中,添加以下顶级属性,用您的代理服务的正确 SPN 替换
YOUR-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 在 Mac 上将证书添加到钥匙串。
- 对于 Linux,请参阅 Ubuntu 文档中的在信任存储中安装根 CA 证书。类似的说明应适用于大多数 Linux 发行版。
如果你已安装证书但 Copilot 未检测到它,请参阅“解决 GitHub Copilot 的网络错误”。