Introduction
Das lokale Sandboxing schränkt den Zugriff auf Dateien, Netzwerkressourcen und Anmeldeinformationen auf Ihrem Computer ein. In diesem Artikel wird erläutert, wie Sie die lokale Sandbox-Isolierung in Copilot CLI und dem Copilot app aktivieren und deaktivieren. Eine konzeptionelle Übersicht über Cloud- und lokale Sandboxes Copilotfinden Sie unter Informationen zum lokalen Sandboxing für GitHub Copilot. Informationen zum Anpassen von Sandkasteneinstellungen finden Sie unter Konfigurieren lokaler Sandkasteneinstellungen.
Informationen zur Verwendung der lokalen Sandkastenumgebung finden Visual Studio CodeSie unter VS Code in der Dokumentation.
Prerequisites
- Windows: Lokale Sandboxing auf Windows erfordert Windows 11 Version 25H2 mit Update KB5124010 oder höher oder Windows 11 Version 26H1 mit Update KB5124006 oder höher, mit Unterstützung für die BaseContainer-Ebene des ProcessContainer-Back-End.
- Linux: Bubblewrap (
bwrap) Version 0.5.0 oder höher, undslirp4netnsmüssen auf Ihrem PATH installiert und verfügbar sein.
Lokales Sandboxing in Copilot CLI verwenden
Wenn Sie lokales Sandboxing aktivieren, führt Copilot CLI die meisten Befehle und Tools, die es für Sie aufruft, in einer Betriebssystem-Sandbox aus. Nachdem Sie die lokale Sandbox aktiviert haben, wird sie für alle Ihre Copilot CLI-Sitzungen verwendet, bis Sie sie deaktivieren oder sie für eine bestimmte Sitzung ausschalten. Wenn von Unternehmen verwaltete Einstellungen Sandboxing erfordern, können die normale Konfiguration und die Befehlszeilenoption --no-sandbox dieses nicht deaktivieren. Wenn die wirksame Richtlinie jedoch die Sandbox-Umgehung zulässt, können Sie die Sandbox für den Rest der aktuellen Sitzung explizit deaktivieren, entweder über eine aktive Aufforderung zur Erteilung einer Umgehungsberechtigung oder durch Ausführen von /sandbox disable. Durch diese Abmeldung von der Sitzung wird die gespeicherte Richtlinie nicht gelockert.
Standardmäßig können Sandkastenbefehle und -tools in Ihr aktuelles Arbeitsverzeichnis und temporäre Ordner schreiben. In einem Git-Repository ist die Git-Metadaten des Repositorys ebenfalls schreibbar, während der Rest des Repositorys über Ihrem aktuellen Arbeitsverzeichnis lesbar, aber nicht schreibbar ist. Ausgewählte System- und Entwicklertoolspeicherorte sind lesbar, und einige Build- und Paketcaches sind schreibbar. Dadurch wird kein Zugriff auf Ihr gesamtes Startverzeichnis gewährt. Andere Pfade werden blockiert, es sei denn, Sie gewähren Zugriff.
Der ausgehende Internetzugriff ist standardmäßig aktiviert. Der lokale Netzwerkzugriff ist deaktiviert. Wie sich diese Einstellungen auf Befehle auswirken, hängt von Ihrem Betriebssystem ab. Siehe Konfigurieren lokaler Sandkasteneinstellungen.
Die Authentifizierung für Git und GitHub CLI (gh) ist standardmäßig aktiviert, Vorgänge wie git push und gh pr create hängen jedoch von den Netzwerkeinstellungen und der Toolkompatibilität ab. In einer Sandbox ausgeführte Befehle und Skripts erhalten Platzhalter-Git- und ghAnmeldeinformationen. Ein lokaler Proxy ersetzt diese durch Ihre tatsächlichen Anmeldeinformationen nur für zugelassene HTTPS-Ziele.
Git-Anmeldeinformationen behalten ihre ursprünglichen Host-, Port- und Repositorypfadeinschränkungen bei. Für gh, Anmeldeinformationen werden nur für github.com, api.github.comund uploads.github.com. Auf der Registerkarte "Anmeldeinformationen " /sandbox configkönnen Sie die Authentifizierung deaktivieren.
Sie können auch zusätzliche Umgebungsvariablen maskieren, z. B. API-Token. Befehle, lokale MCP-Server und Sprachserver, die im Sandkasten ausgeführt werden, erhalten Platzhalter für diese Variablen. Der Proxy stellt jeden tatsächlichen Wert nur für die von Ihnen angegebenen HTTPS-Hosts bereit. Anweisungen zur Einrichtung findest du unter Konfigurieren lokaler Sandkasteneinstellungen.
Auf Windows erfordert dies eine Version, die Verbindungen von der Sandbox zu Diensten auf Ihrem Computer (Host-Loopback) unterstützt. Sie müssen auch Lokales Netzwerk erlauben auf der Registerkarte Netzwerk in /sandbox config aktivieren. Dies ermöglicht auch den Zugriff auf private Netzwerke, nicht nur den Zugriff auf den Anmeldeinformationsproxy.
Eine konzeptionelle Übersicht zum Sandboxing in Copilot CLI finden Sie unter Informationen zum lokalen Sandboxing für GitHub Copilot.
Sandbox-Befehle
Sie verwalten lokales Sandboxing in einer Copilot CLI-Sitzung mithilfe des /sandbox Slash-Befehls. Sie verfügt über die folgenden Unterbefehle.
| Befehl | Beschreibung |
|---|---|
/sandbox status | Gibt an, ob Sandboxing derzeit für die Sitzung verwendet wird. Siehe Überprüfen, ob Sandboxing verwendet wird. |
/sandbox policy [COMMAND] | Zeigen Sie die effektiven Pfade, Netzwerkeinstellungen und Funktionen für das aktuelle Verzeichnis an. Fügen Sie optional einen Befehl ein, um den Entwicklertool-Zugriff zu prüfen, den er erhalten würde, ohne ihn auszuführen. Weitere Informationen findest du unter Grundlegendes zu Dateisystemrichtlinien für lokale Sandboxing in GitHub Copilot CLI. |
/sandbox config | Öffnen Sie die Interaktive Einstellungsschnittstelle. Die Eingabe von /sandbox allein bewirkt dasselbe. Weitere Informationen findest du unter Konfigurieren lokaler Sandkasteneinstellungen. |
/sandbox enable | Aktivieren Sie lokales Sandboxing. Weitere Informationen finden Sie unter Aktivieren der lokalen Sandkastenumgebung. |
/sandbox disable | Deaktivieren Sie die lokale Sandbox. Wenn von Unternehmen verwaltete Einstellungen die Verwendung von Sandboxing erfordern, wird dies abgelehnt, es sei denn, die geltende Richtlinie erlaubt die Umgehung der Sandbox; in diesem Fall wird die Sandbox nur für den Rest der aktuellen Sitzung deaktiviert. Weitere Informationen finden Sie unter "Deaktivieren der lokalen Sandboxing". |
Lokale Sandbox aktivieren
Um die lokale Sandboxing zu aktivieren, geben Sie den folgenden Befehl in einer interaktiven Copilot CLI Sitzung ein:
/sandbox enable
/sandbox enable
Sandboxing kommt für die aktuelle Sitzung sofort zum Einsatz.
Nachdem Sie lokale Sandkastenfunktionen aktiviert haben, wird sie weiterhin für die aktuellen und zukünftigen interaktiven Sitzungen und für programmgesteuerte Sitzungen verwendet.
Hinweis
Wenn Sie /sandbox enable eingeben, während andere Sitzungen geöffnet sind, wird Sandboxing in diesen Sitzungen nicht sofort verwendet. Wenn Sie Sandboxing in einer bereits offenen Sitzung verwenden möchten, führen Sie in dieser Sitzung einen der folgenden Schritte aus:
- Schließen Sie die Sitzung, und starten Sie sie neu, z. B. durch Ausführen
copilot --continue. - Geben Sie
/sandbox enableein.
Lokale Sandbox deaktivieren
Wenn unternehmensseitig verwaltete Einstellungen Sandboxing erfordern, wird /sandbox disable verweigert, es sei denn, die wirksame Richtlinie erlaubt die Umgehung der Sandbox. Wenn die Umgehung erlaubt ist, deaktiviert das Ausführen von /sandbox disable – oder das Reagieren auf eine aktive Aufforderung zur Umgehungsgenehmigung – die Sandbox-Isolierung nur für den Rest der aktuellen Sitzung, ohne die gespeicherte Richtlinie zu lockern.
Um die Verwendung des lokalen Sandkastens zu beenden, geben Sie den folgenden Befehl in einer interaktiven Copilot CLI Sitzung ein:
/sandbox disable
/sandbox disable
Sofern keine vom Unternehmen verwalteten Einstellungen Sandboxing erfordern, wird Sandboxing in der aktuellen Sitzung sowie in neuen und neu gestarteten Sitzungen deaktiviert. Unter einer verwalteten Richtlinie, die die Umgehung zulässt, wird die Sandbox-Isolierung nur für die aktuelle Sitzung deaktiviert.
Ein gewöhnlicher Befehl zum Aktivieren oder Deaktivieren speichert Ihre Auswahl wie sandbox.enabled in ihrer persönlichen Einstellungsdatei (~/.copilot/settings.json standardmäßig). Ein verwalteter Opt-out nur für diese Sitzung ändert diese Datei nicht. Führen Sie /sandbox enable aus, um die Sandkastenumgebung in dieser Sitzung wiederherzustellen.
Verwenden von Sandkasten für eine einzelne Sitzung
Sie können die --sandbox Befehlszeilenoption verwenden, um Sandkasten für eine einzelne Sitzung zu verwenden, ohne Sandkasten für Ihre anderen Sitzungen zu aktivieren. Wenn die Sandkastenumgebung bereits aktiviert ist, können Sie sie für eine einzelne Sitzung mithilfe der --no-sandbox Option deaktivieren. Die --no-sandbox Option kann keine vom Unternehmen verwalteten Einstellungen außer Kraft setzen, die Sandboxing erfordern.
Sie können diese Optionen mit der -p Befehlszeilenoption kombinieren, um die Sandkastenanwendung für die programmgesteuerte Verwendung der CLI zu steuern. Beispiel:
copilot --sandbox -p "PROMPT"
copilot --sandbox -p "PROMPT"
Ausführen eines einzelnen Befehls außerhalb der Sandbox
Wenn der Sandkasten einen Befehl blockiert, kann Copilot Sie bitten, einen anderen Versuch mit erweitertem Zugriff zu genehmigen. Die Aufforderung beschreibt den Befehl und den vorgeschlagenen Wiederholungsversuch. Sie können es genehmigen, das blockierte Ergebnis beibehalten oder die Sandboxing für den Rest der aktuellen Sitzung deaktivieren. Das Deaktivieren der Sandbox für die Sitzung ist nur verfügbar, wenn die effektive Richtlinie die Umgehung der Sandbox zulässt. Wenn dies zulässig ist, können Sie dies auch jederzeit durch Ausführen /sandbox disabletun.
Umgehungsanforderungen sind standardmäßig aktiviert und können in Den Sandkasteneinstellungen deaktiviert werden.
Eine genehmigte Umgehung eines Befehls überspringt die Maskierung von Anmeldeinformationen und den Sandbox-Proxy. Der Befehl wird mit seiner normalen Umgebung ausgeführt, die echte geheime Werte enthalten kann. Hostbeschränkungen für maskierte Variablen schützen keinen Befehl, der außerhalb der Sandbox ausgeführt wird.
Die Sandbox ist nur einer der Gründe, warum ein Befehl fehlschlagen kann. Copilot bietet einen Wiederholungsversuch mit breiterem Zugriff nur, wenn die Sandbox die wahrscheinliche Ursache ist und eine Ausführung außerhalb davon tatsächlich helfen könnte. Andere Fehler zeigen keine Bypass-Eingabeaufforderung an. Zum plattformspezifischen Wiederholungsverhalten siehe Konfigurieren lokaler Sandkasteneinstellungen.
Überprüfen, ob Sandkasten verwendet wird
Um zu überprüfen, ob lokale Sandboxing für die aktuelle Sitzung verwendet wird, geben Sie Folgendes ein:
/sandbox status
/sandbox status
Copilot CLI meldet, ob die Sandkasten-Funktion für die Sitzung aktiviert ist. Wenn die von Ihrer Organisation verwalteten Einstellungen Sandboxing erfordern, wird auch im Status darauf hingewiesen. Da der Status widerspiegelt, was die Sitzung tatsächlich erzwingt, ist dies der zuverlässigste Weg, um zu überprüfen, ob die von Copilot ausgeführten Befehle in einer Sandbox ausgeführt werden.
Um nicht nur zu sehen, ob Sandboxing aktiviert ist, sondern auch, welche Pfade genau lesbar, schreibbar oder blockiert sind, geben Sie /sandbox policy ein. Weitere Informationen findest du unter Grundlegendes zu Dateisystemrichtlinien für lokale Sandboxing in GitHub Copilot CLI.
Sie können den Sandbox-Status auch auf einen Blick in der Statuszeile erkennen, die sandbox enabled enthält, wenn Sandboxing verwendet wird. Die Anzeige von Sandkasteninformationen in der Statuszeile ist standardmäßig aktiviert. Wenn sie deaktiviert wurde, können Sie sie wieder aktivieren:
- Geben Sie
/statuslineein. - Bewegen Sie die Auswahl in der Optionsliste nach unten bis zu sandbox.
- Drücken Sie die EINGABETASTE , um die Einstellung so umzuschalten, dass ein Häkchen angezeigt wird.
Troubleshooting
Verwenden Sie die folgenden Anleitungen, um blockierte Befehle, PowerShell- und Git-Probleme unter Windows und Authentifizierungsfehler zu beheben.
Fehlerbehebung bei blockierten Befehlen
Wenn ein Befehl nicht auf eine Datei zugreifen kann, ein Tool verwenden oder eine Verbindung mit einem Host herstellen kann, überprüfen Sie die Sandbox-Richtlinie, bevor Sie umfassenderen Zugriff gewähren.
-
Führen Sie
/sandbox statusaus, um zu bestätigen, ob Sandboxing für die aktuelle Sitzung aktiviert ist. -
Führen Sie
/sandbox policyaus, um die effektive Richtlinie zu überprüfen. Um die zusätzlichen Pfade anzuzeigen, die für Tools verfügbar sind, die von einem Befehl verwendet werden, fügen Sie den Befehl nach/sandbox policyhinzu. Beispiel:Shell /sandbox policy npm install
/sandbox policy npm installDadurch wird eine Vorschau der Richtlinie angezeigt, ohne
npm installauszuführen. Überprüfen Sie die aufgelisteten Pfade und Netzwerkeinstellungen. Überprüfen Sie Notes auf Einstellungen, die nicht angewendet werden konnten. -
Wenn die Richtlinie den Zugriff blockiert, den Sie zulassen möchten, verwenden Sie
/sandbox config, um die erforderlichen Pfad- oder Hostregeln zu aktualisieren. Gewähren Sie nur den Zugriff, den der Befehl benötigt. Zu fehlenden Pfaden und symbolischen Links siehe Grundlegendes zu Dateisystemrichtlinien für lokale Sandboxing in GitHub Copilot CLI. Verwenden Sie/add-dir PATH, um Lese- und Schreibzugriff auf ein Verzeichnis nur für die aktuelle Sitzung zu gewähren, ohne die gespeicherten Sandkasteneinstellungen zu ändern. Der auf diese Weise gewährte Zugriff unterliegt weiterhin jeder von Ihrer Organisation verwalteten Sandbox-Richtlinie. -
Wenn die Einstellung von Ihrer Organisation verwaltet wird, wenden Sie sich an den Administrator. Wenn der Fehler ein fehlendes Betriebssystemfeature oder eine Linux-Abhängigkeit benennt, beheben Sie diese Anforderung und starten Sie Copilot CLI neu, bevor Sie es erneut versuchen.
-
Bitten Sie Copilot, den Befehl erneut auszuführen. Wenn eine 1-Befehlsumgehung angeboten wird, genehmigen Sie sie nur, wenn Sie mit dem beschriebenen breiteren Zugriff vertraut sind. Durch das Deaktivieren der Sandbox-Ausführung für die gesamte Sitzung erhalten nachfolgende Befehle breiteren Zugriff, nicht nur für den blockierten Befehl.
Problembehandlung bei blockierten Pfaden, die es nicht gibt
Ihre Sandkasteneinstellungen können den Zugriff auf bestimmte Dateien oder Verzeichnisse blockieren. Wenn auf Ihrem Computer kein blockierter Pfad vorhanden ist, erstellt Copilot CLI an diesem Speicherort ein Verzeichnis, bevor ein Sandkastenbefehl gestartet wird. Außerdem werden fehlende übergeordnete Verzeichnisse erstellt. Diese Verzeichnisse werden danach nicht automatisch entfernt.
Wenn Sie beispielsweise den Zugriff auf diese Datei blockieren .env, bevor diese Datei vorhanden ist, erstellt Copilot CLI ein Verzeichnis mit dem Namen .env und nicht eine Datei.
- Wenn der blockierte Pfad eine Datei sein soll, erstellen Sie diese Datei außerhalb des Sandkastens, bevor Sie einen Befehl in der Sandbox ausführen.
- Wenn
Failed to prepare denied sandbox pathangezeigt wird, wurde der Befehl nicht gestartet. Überprüfen Sie, ob der konfigurierte Pfad korrekt ist und dass Ihr Konto über die Berechtigung zum Erstellen von Verzeichnissen dort verfügt. Verwenden Sie/sandbox config, um einen unbeabsichtigten Pfad zu korrigieren, oder wenden Sie sich an den Administrator, wenn die Einstellung verwaltet wird.
Beim Ausführen von /sandbox policy werden diese Verzeichnisse nicht erstellt. Unter Linux werden pfade, die noch nicht vorhanden sind, aus der effektiven Richtlinie ausgelassen, die in der Vorschau angezeigt wird. Sie verbleiben in Ihren konfigurierten Einstellungen.
Problembehandlung bei PowerShell und Git auf Windows
Bei Windows-Installationen ohne die erforderlichen Updates meldet PowerShell in einer Sandbox möglicherweise einen Laufwerkstamm, wie z. B. C:\, als aktuelles Verzeichnis.
Set-Location und Git-Befehle, die auf dem aktuellen Verzeichnis basieren, können auch dann fehlschlagen, wenn PowerShell startet.
-
Installieren Sie das Update vom September 2026 oder später für eine unterstützte Windows-Version. Wenn Ihre Organisation Windows Updates verwaltet, wenden Sie sich an Ihren Administrator.
-
Wenn Sie die Aktualisierung nicht sofort ausführen können, bitten Sie Copilot , einen absoluten Repositorypfad für Git-Befehle zu verwenden. Beispiel:
Shell git -C "C:\PATH\TO\REPOSITORY" status
git -C "C:\PATH\TO\REPOSITORY" statusDadurch wird vermieden, sich auf das aktuelle Verzeichnis von PowerShell zu verlassen. Der Sandkasten muss weiterhin zugriff auf das Repository zulassen. Es werden keine anderen Dateisystem- oder Authentifizierungsfehler behoben.
Problembehandlung für die Authentifizierung
Wenn die Maskierung von Anmeldeinformationen aktiviert ist, verwendet Copilot CLI einen lokalen Proxy, um die tatsächlichen Anmeldeinformationen ausgehenden Anfragen hinzuzufügen. Tools, die diese Anmeldeinformationen verwenden, müssen den Proxy unterstützen und dem Sicherheitszertifikat vertrauen.
Copilot CLI stellt automatisch ein temporäres Zertifikatpaket für Sandkastentools bereit. Einige Tools verwenden dieses Bundle nicht und melden möglicherweise Zertifikat- oder Authentifizierungsfehler.
Unter macOS und Windows können Sie optional die Zertifizierungsstelle des Proxys im Vertrauensspeicher Ihres Betriebssystems installieren, um die Kompatibilität zu verbessern. Führen Sie in einer Copilot CLI Sitzung /sandbox ca create aus, dann /sandbox ca trust. Bei Windows erfordert die Installation des Zertifikats eine Administratorgenehmigung. Dadurch wird auch die Zertifikatvertrauensstellung für Anwendungen außerhalb Copilot CLI geändert.
Durch die Installation des Zertifikats werden nicht alle Kompatibilitätsprobleme behoben. Tools, die HTTP/2 erfordern, nur bestimmte Serverzertifikate akzeptieren (Zertifikatanheftung), Clientzertifikate verwenden oder Anmeldeinformationen zum Signieren von Anforderungen verwenden, können weiterhin fehlschlagen.
Überprüfen Sie bei maskierten Umgebungsvariablen, ob die Variable für die CLI verfügbar ist, das Ziel mit seinen Injektionshosts übereinstimmt und ob Ihre Netzwerkeinstellungen die Verbindung erlauben. Tools müssen den Platzhalter als Anmeldeinformationen in einem HTTPS-Anforderungsheader senden, z. B. Authorization oder X-Api-Key. Die HTTP-Basisauthentifizierung funktioniert auch, wenn der Platzhalter das Kennwort ist. HTTP im Klartext, Request-Bodys, URLs und signierte Requests erhalten nicht den tatsächlichen Wert.
Die Maskierung schützt nur die konfigurierten Umgebungsvariablen und die aktivierte Git- und gh Authentifizierung. Es verbirgt keine Secrets in Anmeldeinformationsdateien, anderen Umgebungsvariablen oder der MCP-Remoteauthentifizierung.
Lokales Sandboxing in der Copilot app verwenden
Je nach den vom Unternehmen verwalteten Einstellungen, die angewendet werden können, können Sie Slash-Befehle verwenden, um die lokale Sandbox für die derzeit aktive Sitzung zu aktivieren oder zu deaktivieren.
Aktivieren und Deaktivieren der Sandbox-Isolierung für Ihre Sitzung
Um die lokale Sandkastenumgebung zu aktivieren, geben Sie Folgendes ein:
/sandbox on
Um Sandboxing zu deaktivieren, geben Sie Folgendes ein:
/sandbox off
Diese Befehle aktivieren oder deaktivieren die Sandkastenumgebung sofort, es sei denn, die vom Unternehmen verwalteten Einstellungen verhindern die Änderung. Ihre Wahl gilt für die aktuelle Sitzung, einschließlich nach einem Neustart, und hat Vorrang vor dem Repositorystandard. Es ändert nicht den Standardwert für das Repository für andere Sitzungen.
Wenn die lokale Sandboxing deaktiviert ist, können Agent-Run-Befehle auf dieselben Dateien, Netzwerke und Anmeldeinformationen wie Ihr Benutzerkonto zugreifen.
Sie können keine lokale Sandboxing für eine Cloud-Sandkastensitzung oder eine Sitzung verwenden, die auf einem Remotehost ausgeführt wird.
Hinweis
- Wenn Sie einen der oben genannten Befehle eingeben, bevor eine Sitzung gestartet wird, z. B. durch Klicken auf Neu, Auswählen eines Repositorys oder lokalen Ordners und anschließende Eingabe des Befehls, ändert der Befehl die Standard-Sandkasteneinstellung für das ausgewählte Repository oder den ausgewählten Ordner. Alternativ können Sie die Standardeinstellung in Ihren Einstellungen festlegen. Siehe Konfigurieren lokaler Sandkasteneinstellungen.
- Anders als in der CLI öffnet die Eingabe von
/sandboxohneonoderoffkeine Konfigurationsoberfläche.
Ausführen eines Tools außerhalb der Sandbox
Wenn ein Tool Zugriff benötigt, den die Sandkastenrichtlinie nicht zulässt, kann die App eine Eingabeaufforderung "Ausführen außerhalb der Sandbox" anzeigen. Abhängig von der effektiven Richtlinie können Sie:
- Abbrechen des Vorgangs.
- Führen Sie den Vorgang einmal außerhalb der Sandbox aus.
- Deaktivieren Sie die Sandbox für den Rest der aktuellen Sitzung und führen Sie den Vorgang aus.
Um den Sandbox-Modus in dieser Eingabeaufforderung zu deaktivieren, klicken Sie auf "Weitere Optionen", dann auf "Sandbox deaktivieren und ausführen", und bestätigen Sie Ihre Auswahl.
Wenn Sie in diesem Dialog den Sandbox-Modus deaktivieren, zeigt die App Sandbox für diese Sitzung deaktiviert an. Klicken Sie auf "Sandkasten erneut aktivieren ", um sie wieder zu aktivieren.
Durch die vorübergehende Deaktivierung des Sandboxing wird die Standardeinstellung des Repositorys oder die gespeicherte Einstellung der Sitzung nicht geändert. Sie endet, wenn die Sitzung neu gestartet oder erneut verbunden wird.
Ein Unternehmensbesitzer kann verhindern, dass Benutzer Tools außerhalb der Sandbox ausführen. Weitere Informationen findest du unter Unternehmensverwaltete Einstellungen.