Hinweis
Lokale Sandboxes für GitHub Copilot befinden sich in Öffentliche Vorschau und können sich ändern.
Informationen zum lokalen Sandkasten
Bei der lokalen Sandbox-Ausführung werden die Tools, die ein Agent in Ihrem Auftrag aufruft, innerhalb einer Betriebssystem-Sandbox ausgeführt. Dies reduziert die potenziellen Auswirkungen eines unbeabsichtigten Befehls, indem der Zugriff auf Dateien, Netzwerkressourcen und Anmeldeinformationen auf Ihrem Computer eingeschränkt wird.
Sie konfigurieren die lokale Sandbox-Ausführung für jedes Projekt separat im GitHub Copilot app. Die Konfiguration gilt für Sitzungen des lokalen Repositorys und des Arbeitsverzeichnisses. Sie gilt nicht für Cloud-Sandkastensitzungen oder Sitzungen, die auf einem Remotehost ausgeführt werden.
Ein Arbeitsverzeichnis hält die Branches und Dateien für parallele Sitzungen getrennt, schränkt jedoch nicht ein, worauf ein Befehl andernorts auf Ihrem Computer zugreifen kann. Lokales Sandboxing bietet diesen zusätzlichen Schutz.
Einen Überblick über Cloud- und lokales Sandboxing Copilot finden Sie unter Informationen zu Cloud- und lokalen Sandboxes für GitHub Copilot.
Aktivieren von lokalem Sandboxing in einem Projekt
Die lokale Sandkastenfunktion ist standardmäßig deaktiviert. So aktivieren Sie sie für neue lokale Sitzungen in einem Projekt:
- Öffnen Sie die App-Einstellungen.
- Wählen Sie das Projekt aus, das Sie konfigurieren möchten.
- Aktivieren Sie unter Sandbox****Neue Sandbox-Sitzungen.
Die Einstellung gilt für neue Sitzungen im Projekt. Eine bereits laufende Sitzung wird dadurch nicht geändert.
Beginnen Sie für die meisten Projekte mit der Standardrichtlinie. Es ermöglicht allgemeine Entwicklungsaufgaben wie das Installieren von Abhängigkeiten, das Verbinden mit einem lokalen Entwicklungsserver, das Pushen eines Branches und das Erstellen eines Pull Requests. Fügen Sie Einschränkungen hinzu, wenn sich das Projekt neben vertraulichen Ordnern befindet, keinen Netzwerkzugriff benötigt oder Ihre Anmeldeinformationen nicht verwenden sollte.
Konfigurieren der Sandkastenrichtlinie für ein Projekt
Eine Sandbox-Richtlinie ist ein Regelwerk, das steuert, auf welche Dateien, Netzwerke und Anmeldeinformationen von einem Agenten ausgeführte Tools zugreifen können. Die Projekteinstellungen beschreiben die Richtlinie, die die App beim Start einer Sandbox-Sitzung anfordert. Die effektive Richtlinie kann restriktiver sein, z. B. wenn vom Unternehmen verwaltete Einstellungen angewendet werden.
In den Projekteinstellungen können Sie Folgendes konfigurieren:
- Dateisystemzugriff: Gewähren Sie zusätzlichen schreibgeschützten oder Lese-/Schreibzugriff auf bestimmte Pfade oder verweigern Sie Pfade.
- Netzwerkzugriff: Zulassen oder Blockieren des ausgehenden Internets und des lokalen Netzwerkzugriffs.
- Anmeldeinformationen: Wählen Sie aus, ob Ihre Git- und GitHub CLI Anmeldeinformationen im Sandkasten verfügbar sind.
Konfigurieren des Dateisystemzugriffs
Standardmäßig verfügt eine Sandbox-Sitzung über Lese- und Schreibzugriff auf ihren Arbeitsbereich und ihr aktuelles Arbeitsverzeichnis. Sie können Zugriff auf zusätzliche Ordner gewähren oder den Zugriff auf bestimmte Ordner verhindern.
Konfigurieren Sie im Abschnitt "Sandbox " der Projekteinstellungen eine der folgenden Listen:
- Zusätzlicher Lese-/Schreibzugriff: Ordner, die von Agent ausgeführten Tools gelesen und geändert werden können.
- Zusätzlich schreibgeschützt: Ordner, die von Agenten ausgeführte Tools lesen, aber nicht ändern können.
- Verweigert: Ordner, auf die agent-ausgeführte Tools nicht zugreifen können.
Wenn Sie einen Ordner hinzufügen möchten, klicken Sie auf "Ordner hinzufügen " für die entsprechende Liste, und wählen Sie dann den Ordner aus. Um einen Ordner zu entfernen, klicken Sie auf das Löschsymbol neben seinem Pfad.
Ein speziellerer verweigerter Ordner bleibt verweigert, wenn ein breiterer übergeordneter Ordner Lese- oder Schreibzugriff hat.
Auf Windows können Sie einen verweigerten Pfad in den Projekteinstellungen speichern. Wenn die aktiven Windows-Sandboxfunktionen die Verweigerung nicht garantieren können, schlägt ein Befehl in der Sandbox mit der Meldung „unsupported-policy“ fehl. Der Befehl wird nicht ausgeführt, wenn auf den gesperrten Pfad zugegriffen werden kann oder keine Sandbox vorhanden ist.
Konfigurieren des Netzwerkzugriffs
Standardmäßig können Sandkastensitzungen eine Verbindung zum Internet und zu Ihrem lokalen Netzwerk herstellen. Im Abschnitt "Sandkasten" der Projekteinstellungen können Sie die folgenden Einstellungen ändern:
- Ausgehender Internetzugriff: Verbindungen zu Internetdiensten wie GitHub und Paketregistrys zulassen.
- Lokales Netzwerk: Zulassen von Loopback- und lokalen Netzwerkverbindungen, einschließlich Verbindungen mit lokalen Entwicklungsservern.
Netzwerkeinschränkungen können sich auf die Paketinstallation, API-Aufrufe, Vorschauserver und andere Tools auswirken, die eine Netzwerkverbindung benötigen.
Unter Linux kann der Sandkasten den lokalen Netzwerkzugriff nicht unabhängig für Spawned-Prozesse steuern, z. B. Shellbefehle und lokale MCP- oder LSP-Server. Die Einstellung gilt weiterhin für In-Process-Vorgänge, z. B. Webanforderungen und Remote-MCP-Verbindungen.
Konfigurieren von Anmeldeinformationen
Standardmäßig sind authentifizierte Git und GitHub CLI Vorgänge im Sandkasten verfügbar. Sie können eine der folgenden Einstellungen deaktivieren:
- Git-Anmeldeinformationen: Authentifizierte HTTPS-Git-Vorgänge zulassen.
- GitHub CLI Anmeldeinformationen: GitHub CLI die Authentifizierung erlauben.
Das Deaktivieren des Zugriffs auf Anmeldedaten kann Vorgänge wie das Pushen eines Branches oder das Erstellen eines Pull Requests in der Sandbox verhindern.
Anwenden von Richtlinienänderungen
Änderungen an Dateisystem-, Netzwerk- und Anmeldeinformationeneinstellungen gelten für neue Sitzungen oder beim Neustart einer vorhandenen Sitzung. Sie ändern die Richtlinie einer aktuell laufenden Sitzung nicht.
Um eine Sitzung neu zu starten, während der Verlauf beibehalten wird, geben Sie Folgendes ein:
/restart-session
Die App akzeptiert Sandkasteneinstellungen, bevor Überprüft wird, ob ihr Betriebssystem sie erzwingen kann. Die Unterstützung wird überprüft, wenn die erste Sandkastenshell gestartet wird. Wenn der Host die angeforderte Richtlinie nicht erzwingen kann, schlägt die Shell mit der Meldung „unsupported-platform“ oder „unsupported-policy“ fehl und wird nicht ohne Sandbox ausgeführt. Informationen zu den derzeit unterstützten Windows-Versionen finden Sie unter Windows Betriebssystemunterstützung für Copilot Sandboxing.
Wenn die App Sandkasten nicht verfügbar anzeigt, beheben Sie das gemeldete Problem, und klicken Sie dann auf "Sandkasten wiederholen".
Ändern der Sandkastenumgebung für eine Sitzung
Um die lokale Sandbox in einer aktiven Sitzung zu aktivieren, geben Sie Folgendes ein:
/sandbox on
Um sie für die Sitzung zu deaktivieren, geben Sie Folgendes ein:
/sandbox off
Während einer aktiven lokalen Sitzung erstellt der Befehl eine dauerhafte Außerkraftsetzung für diese Sitzung und wendet sie sofort an. Die Außerkraftsetzung ändert die Projektstandardeinstellung für andere Sitzungen nicht.
Wenn Sie einen der Befehle eingeben, bevor eine Sitzung gestartet wird, ändert der Befehl den von neuen Sitzungen geerbten Projektstandard.
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.
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.
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.
Das vorübergehende Deaktivieren der Sandbox ändert weder die Projektstandardeinstellung noch die Sitzungsübersteuerung. 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.