Skip to main content
Skip to content

在 GitHub Copilot 应用中配置本地沙盒

使用 /sandbox / 命令和 GitHub Copilot app 中的项目设置,来控制本地沙盒如何限制文件系统访问、网络连通性和凭据使用。

谁可以使用此功能?

GitHub Copilot app 适用于所有 Copilot 计划。
Download GitHub Copilot app

注意

GitHub Copilot 的本地沙盒位于 公开预览,并且可能会发生变化。

有关本地沙盒机制

本地沙盒运行代理在操作系统沙盒中代表你调用的工具。 这可以通过限制对计算机上的文件、网络资源和凭据的访问来减少意外命令的潜在影响。

在 GitHub Copilot app 中为每个项目单独配置本地沙盒环境。 该配置适用于本地存储库和工作树会话。 它不适用于在远程主机上运行的云沙盒会话或会话。

工作树将并发会话的分支和文件分开,但它不会限制命令可以访问计算机上的其他位置的内容。 本地沙盒机制提供了这层额外保护。

有关 Copilot 的云端和本地沙盒环境概述,请参阅 关于云端和本地沙盒 GitHub Copilot。

在项目中启用本地沙盒机制

默认情况下,本地沙盒处于关闭状态。 若要为项目中的新本地会话启用它,请执行以下操作:

  1. 打开应用设置。
  2. 选择要配置的项目。
  3. 在 沙盒下,打开 沙盒新会话。

此设置适用于项目中的新会话。 它不会更改正在运行的会话。

对于大多数项目,请从默认策略开始。 它允许常见的开发任务,例如安装依赖项、连接到本地开发服务器、推送分支和创建拉取请求。 当项目位于敏感文件夹旁边、不需要网络访问或不应使用凭据时添加限制。

为项目配置沙盒策略

沙盒策略是一组规则,用于控制代理运行工具可以访问的文件、网络和凭据。 项目设置描述应用在沙盒会话启动时请求的策略。 有效策略可能更具限制性,例如,企业托管设置适用时。

在项目设置中,可以配置:

  • 文件系统访问权限:授予对特定路径的额外只读或读写权限,或拒绝对特定路径的访问。
  • 网络访问:允许或阻止出站 Internet 和本地网络访问。
  • 凭据:选择 Git 和 GitHub CLI 凭据是否在沙盒中可用。

配置文件系统访问

默认情况下,沙盒会话对其工作区和当前工作目录具有读/写访问权限。 可以授予对其他文件夹的访问权限,或阻止访问特定文件夹。

在项目设置的 沙盒 部分中,配置以下任一列表:

  • 其他读/写:代理运行工具可以读取和修改的文件夹。
  • 其他只读:代理运行工具可以读取但不能修改的文件夹。
  • 被拒绝:代理运行工具无法访问的文件夹。

若要添加文件夹,请单击相应列表的 “添加”文件夹 ,然后选择该文件夹。 若要删除文件夹,请单击其路径旁边的删除图标。

当更广泛的父文件夹具有读取或写入访问权限时,更具体的拒绝文件夹仍被拒绝。

在Windows,可以在项目设置中保存被拒绝的路径。 如果活动Windows沙盒功能无法保证拒绝,则沙盒命令会失败并显示不受支持的策略消息。 该命令无法在可访问被拒绝路径或没有沙盒的情况下运行。

配置网络访问

默认情况下,沙盒会话可以连接到 Internet 和本地网络。 在项目设置的 沙盒 部分中,可以更改以下设置:

  • 出站互联网:允许连接到互联网服务,例如 GitHub 和软件包注册表。
  • 本地网络:允许环回和本地网络连接,包括与本地开发服务器的连接。

网络限制可能会影响包安装、API 调用、预览服务器和其他需要网络连接的工具。

在 Linux 上,沙盒无法单独控制生成进程的本地网络访问,例如 shell 命令和本地 MCP 或 LSP 服务器。 此设置仍适用于进程内操作,例如 Web 请求和远程 MCP 连接。

配置凭据

默认情况下,经过身份验证的 Git 和 GitHub CLI 操作在沙盒中可用。 可以关闭以下任一设置:

  • Git 凭据:允许经过身份验证的 HTTPS Git 操作。
  • GitHub CLI 凭据:允许 GitHub CLI 进行身份验证。

关闭凭据访问可能会阻止从沙盒内部推送分支或创建拉取请求等操作。

应用策略更改

对文件系统、网络和凭据设置的更改适用于新会话或现有会话重启时。 它们不会更改当前运行中的会话策略。

若要在保留会话历史记录时重启会话,请输入:

/restart-session

该应用会先接受沙盒配置,然后才检查你的操作系统是否能够强制执行这些配置。 当第一个沙盒命令行启动时,会检查是否支持。 如果主机无法强制执行所请求的策略,shell 将报出 unsupported-platform 或 unsupported-policy 消息并失败,且不会在未沙盒化的情况下运行。 若要查找当前支持的Windows版本,请参阅Windows操作系统对Copilot沙盒的支持。

如果应用显示 沙盒不可用,请解决报告的问题,然后单击“ 重试沙盒”。

更改会话的沙盒隔离设置

若要在当前活动会话中启用本地沙盒,请输入:

/sandbox on

若要关闭会话,请输入:

/sandbox off

在本地会话处于活动状态时,该命令会为该会话创建一个持久覆盖设置,并立即使其生效。 替代不会更改其他会话的项目默认值。

如果在会话启动前输入任一命令,该命令将更改新会话继承的项目默认值。

本地沙盒关闭时,代理运行命令可以访问与用户帐户相同的文件、网络和凭据。

不能对云沙盒会话或远程主机上运行的会话使用本地沙盒。

在沙盒外运行工具

如果某个工具需要沙盒策略不允许的访问权限,应用可以在 沙盒外部显示“运行” 提示。 根据有效策略,可以:

  • 取消操作。
  • 在沙盒外部运行该操作一次。
  • 在当前会话的剩余时间内禁用沙盒并运行该操作。

如果您在此提示中禁用沙盒隔离,应用将显示 此会话的沙盒已关闭。 单击“ 重新启用沙盒 ”将其重新打开。

暂时禁用沙盒模式不会更改项目默认值或会话级覆盖设置。 会话重启或重新附加时,它将结束。

企业所有者可以阻止用户在沙盒外部运行工具。 有关详细信息,请参阅“企业管理设置”。