Skip to main content

Konfigurieren GitHub Copilot CLI

Konfigurieren Sie vertrauenswürdige Verzeichnisse, Zugriff auf Tools und Path- und URL-Berechtigungen für Copilot CLI

Einleitung

Die Copilot CLI verfügt über mehrere Konfigurationsoptionen, die steuern, worauf sie zugreifen kann und welche Aktionen sie in Ihrem Auftrag durchführen darf.

In diesem Artikel erfahren Sie, wie Sie vertrauenswürdige Verzeichnisse festlegen, den Zugriff für Tools konfigurieren und Berechtigungen für Dateipfade und URLs erteilen.

Voraussetzungen

Festlegen vertrauenswürdiger Verzeichnisse

Vertrauenswürdige Verzeichnisse steuern, wo Copilot CLI Dateien lesen, ändern und ausführen kann. Das Vertrauen in ein Verzeichnis hat Sicherheitsauswirkungen, siehe Sicherheitsüberlegungen.

Vertrauen in ein Verzeichnis

Wenn du eine GitHub Copilot-CLI-Sitzung startest, wirst du aufgefordert, zu bestätigen, dass du den Dateien in und unter dem Verzeichnis vertraust, in dem du die CLI gestartet hast.

Du kannst das aktuelle Verzeichnis für Folgendes als vertrauenswürdig festlegen:

  • Nur die aktuell ausgeführte Sitzung
  • Diese und zukünftige Sitzungen

Wenn du das Verzeichnis für zukünftige Sitzungen als vertrauenswürdig festlegst, wird der Prompt nicht mehr für das vertrauenswürdige Verzeichnis angezeigt. Du solltest diese zweite Option nur auswählen, wenn sicher bist, dass dieser Speicherort immer ein sicherer Ort für den Betrieb von Copilot ist.

Bearbeiten vertrauenswürdiger Verzeichnisse

Sie können die Liste der dauerhaft vertrauenswürdigen Verzeichnisse bearbeiten.

  1. Öffnen Sie die CLI-Datei config.json . Standardmäßig wird sie in einem .copilot Ordner unter Ihrem Startverzeichnis gespeichert:

    •      **macOS/Linux**: `~/.copilot/config.json`
      
    •      **Windows**: `$HOME\.copilot\config.json`
      

Sie können den Konfigurationsspeicherort ändern, indem Sie die COPILOT_HOME Umgebungsvariable festlegen.

  1. Bearbeiten Sie den Inhalt des trusted_folders Arrays.

Festlegen zulässiger Tools

Sie können steuern, welche Tools Copilot CLI verwenden können, indem Sie entweder auf Genehmigungsanfragen reagieren, wenn Copilot versucht, ein Tool zu verwenden, oder indem Sie Berechtigungen über Befehlszeilen-Flags angeben.

Beachten Sie, dass das Zulassen des Toolzugriffs sicherheitsrelevante Auswirkungen hat, siehe Sicherheitsüberlegungen.

In diesem Abschnitt erfahren Sie, wie Sie:

  •         [Ein Tool zum ersten Mal zulassen](#allowing-a-tool-for-the-first-time)
    
  •         [Zulassen, dass Tools ohne manuelle Genehmigung verwendet werden](#allowing-tools-to-be-used-without-manual-approval)
    
  •         [Geben Sie an, welches Tool Sie zulassen oder verweigern möchten.](#specifying-which-tool-you-want-to-allow-or-deny)
    
  •         [Zulassen einiger Tools beim Verweigern anderer Tools](#allowing-some-tools-while-denying-others)
    
  •         [Einschränken verfügbarer Tools](#limiting-available-tools)
    

Die erstmalige Zulassung eines Werkzeugs

Wenn Copilot zum ersten Mal ein Tool verwenden muss, das möglicherweise eine Genehmigung erfordert – z. B. Beispiel: touch, chmod, node oder sed –, werden Sie gefragt, ob Sie die Ausführung erlauben möchten. Ob Sie dazu aufgefordert werden, hängt vom Tool und deren Verwendung ab (z. B. die bereitgestellten Argumente oder ob das Tool zuvor genehmigt wurde).

  1. Fordern Sie Copilot auf, eine Aufgabe auszuführen, die ein Tool erfordert. Beispiel:

    copilot -p "Create a new file called README.md with a project description"
    
  2. Wählen Sie aus einer der drei Optionen aus:

    • 1. Yes

      Wählen Sie diese Option aus, um Copilot die Ausführung des betreffenden Befehls nur dieses eine Mal zu erlauben. Wenn dieses Tool das nächste Mal verwendet werden muss, wirst du erneut gefragt.

    • 2. Yes, and approve TOOL for the rest of the running session

      Wählen Sie diese Option aus, um Copilot die Verwendung dieses Tools für die Dauer der aktuellen Sitzung zu erlauben. Dabei wirst du in neuen Sitzungen oder beim Fortsetzen der aktuellen Sitzung in Zukunft erneut um deine Genehmigung gebeten. Wenn du diese Option auswählst, erlaubst du es Copilot, dieses Tool in einer weise zu verwenden, die Copilot für angemessen hält.

      Wenn du beispielsweise von Copilot aufgefordert wirst, die Ausführung des Befehls rm ./this-file.txt zuzulassen, und du Option 2 auswählst, kann Copilot während der aktuellen Ausführung dieser Sitzung einen beliebigen rm-Befehl wie rm -rf ./* ausführen, ohne deine Genehmigung anzufordern.

    • 3. No, and tell Copilot what to do differently (Esc)

      Wählen Sie diese Option aus, um den vorgeschlagenen Befehl abzubrechen, und weisen Sie Copilot an, einen anderen Ansatz zu versuchen.

Zulassen der Verwendung von Tools ohne manuelle Genehmigung

Sie können Befehlszeilenflags verwenden, um Tools anzugeben, die Copilot verwenden kann, ohne Ihre Zustimmung zu verlangen.

Alle Werkzeuge zulassen

Verwenden Sie --allow-all-tools, um Copilot die Verwendung jedes Tools zu gestatten, ohne um Ihre Zustimmung zu bitten.

  • Beispiel:

    copilot -p "Revert the last commit" --allow-all-tools
    

Ein Tool verweigern

Verwenden Sie --deny-tool, um zu verhindern, dass Copilot ein bestimmtes Tool verwendet.

  • Beispiel:

    copilot --deny-tool='shell(git push)'
    

Diese Option hat Vorrang vor den Optionen --allow-all-tools und --allow-tool.

Ein Tool zulassen

Verwenden Sie --allow-tool, um Copilot die Verwendung eines bestimmten Tools zu gestatten, ohne um Ihre Zustimmung zu bitten.

  • Beispiel:

    copilot --allow-tool='shell'
    

Angeben des Tools, das Sie zulassen oder verweigern möchten

Um die --deny-tool Optionen --allow-tool zu verwenden, müssen Sie angeben, welche Art von Tool Sie zulassen oder verweigern möchten:

  •         [Shellbefehle](#allowing-or-denying-shell-commands)
    
  •         [Tools zum Schreiben](#allowing-or-denying-write-tools)
    
  •         [MCP-Servertools](#allowing-or-denying-mcp-server-tools)
    

Zulassen oder Verweigern von Shellbefehlen

          `shell(COMMAND)` wird verwendet, um einen bestimmten Shell-Befehl zuzulassen oder zu verweigern.
  • Um beispielsweise zu verhindern, dass Copilot einen rm-Befehl verwendet, geben Sie Folgendes an:

    copilot --deny-tool='shell(rm)'
    

Geben Sie für git und gh Befehle einen bestimmten Unterbefehl der ersten Ebene an, um den Befehl zuzulassen oder zu verweigern.

  • Um beispielsweise zu verhindern, dass Copilot git push verwendet, geben Sie Folgendes an:

    copilot --deny-tool='shell(git push)'
    

Die Angabe des Tools ist optional. Beispielsweise ermöglicht copilot --allow-tool='shell' Copilot die Verwendung beliebiger Shellbefehle ohne individuelle Genehmigung.

Zulassen oder Verweigern von 'write' Tools

Verwenden Sie 'write', um anderen Tools als Shell-Befehlen die Erlaubnis zu erteilen oder zu verweigern, Dateien zu ändern.

  • Um Copilot das Bearbeiten von Dateien zu erlauben, ohne dass Sie jedes Mal die Genehmigung hierfür erteilen, geben Sie Folgendes an:

    copilot --allow-tool='write'
    

Zulassen oder Verweigern von MCP-Servertools

Verwenden Sie 'MCP_SERVER_NAME', um ein bestimmtes Tool vom angegebenen MCP-Server zuzulassen oder zu verweigern.

  • Um beispielsweise zu verhindern, dass Copilot das Tool tool_name vom MCP-Server My-MCP-Server verwendet, geben Sie Folgendes an:

    copilot --deny-tool='My-MCP-Server(tool_name)'
    
            `MCP_SERVER_NAME` ist der Name eines MCP-Servers, den Sie konfiguriert haben.
    

Tools vom Server werden in Klammern angegeben, wobei der Toolname verwendet wird, der beim MCP-Server registriert ist.

Wenn du den Servernamen verwendest, ohne ein Tool anzugeben, werden alle Tools dieses Servers zugelassen oder verweigert.

Du kannst den Namen eines MCP-Servers ermitteln, indem du /mcp im interaktiven Modus von Copilot CLI eingibst und den Server aus der angezeigten Liste auswählst.

Zulassen einiger Tools beim Verweigern anderer Tools

Um genau zu bestimmen, welche Tools Copilot verwenden kann, ohne Ihre Genehmigung zu verlangen, können Sie eine Kombination von Genehmigungsoptionen verwenden. Beispiel:

  • Um die Verwendung der Befehle rm und git push durch Copilot zu verhindern, aber alle anderen Tools automatisch zuzulassen, geben Sie Folgendes an:

    copilot --allow-all-tools --deny-tool='shell(rm)' --deny-tool='shell(git push)'
    
  • Um zu verhindern, dass Copilot das Tool tool_name vom MCP-Server namens My-MCP-Server verwenden, jedoch zulassen, dass alle weiteren Tools von diesem Server ohne individuelle Genehmigung verwendet werden, verwende Folgendes:

    copilot --allow-tool='My-MCP-Server' --deny-tool='My-MCP-Server(tool_name)'
    

Einschränken der verfügbaren Tools

Verwenden Sie --available-tools, um Copilot auf einen bestimmten Satz von Tools zu beschränken.

Tools, die in dieser Liste nicht enthalten sind, stehen Copilot nicht zur Verfügung.

Festlegen von Pfadberechtigungen

Pfadberechtigungen steuern, auf welche Verzeichnisse und Dateien Copilot zugreifen kann.

Standardmäßig kann Copilot CLI auf das aktuelle Arbeitsverzeichnis, seine Unterverzeichnisse und das temporäre Systemverzeichnis zugreifen.

Pfadberechtigungen gelten für Shell-Befehle, Dateivorgänge (erstellen, bearbeiten, anzeigen) und Suchtools (wie z. B. grep und Glob-Muster). Bei Shellbefehlen werden Pfade heuristisch extrahiert, indem Befehlstext tokenisiert und Token identifiziert werden, die wie Pfade aussehen.

Warnung

Die Pfaderkennung für Shellbefehle hat Einschränkungen:

  • Pfade, die in komplexe Shellkonstrukte eingebettet sind, werden möglicherweise nicht erkannt.
  • Nur eine bestimmte Gruppe von Umgebungsvariablen wird erweitert (HOME, TMPDIR, und PWDähnlich). Benutzerdefinierte Variablen wie $MY_PROJECT_DIR werden nicht erweitert und möglicherweise nicht korrekt validiert.
  • Symlinks werden für vorhandene Dateien aufgelöst, aber nicht für Dateien, die erstellt werden.

Zugriff auf alle Pfade zulassen

Um die Pfadüberprüfung zu deaktivieren und den Zugriff auf einen beliebigen Pfad zuzulassen, verwenden Sie das --allow-all-paths-Flag beim Starten von Copilot CLI.

Zugriff auf das temporäre Verzeichnis aufheben

Um den Zugriff auf das temporäre Verzeichnis zu verbieten, verwenden Sie --disallow-temp-dir.

Festlegen von URL-Berechtigungen

URL-Berechtigungen steuern, auf welche externen URLs Copilot zugreifen können. Standardmäßig erfordern alle URLs eine Genehmigung, bevor der Zugriff gewährt wird.

URL-Berechtigungen gelten für das web_fetch Tool und eine kuratierte Liste von Shellbefehlen, die auf das Netzwerk zugreifen (z. B. curl, wget und fetch). Für Shellbefehle werden URLs mithilfe von regex-Mustern extrahiert.

Warnung

Die URL-Erkennung für Shellbefehle hat Einschränkungen:

  • URLs in Dateiinhalten, Konfigurationsdateien oder Umgebungsvariablen, die von Befehlen gelesen werden, werden nicht erkannt.
  • Verschleierte URLs (z. B. geteilte Zeichenfolgen oder Escapesequenzen) werden möglicherweise nicht erkannt.
  • HTTP und HTTPS werden als unterschiedliche Protokolle behandelt und erfordern eine separate Genehmigung.

URL-Berechtigungen können für die Sitzung oder dauerhaft beibehalten werden.

Deaktivieren der URL-Überprüfung

Um die URL-Überprüfung zu deaktivieren, verwenden Sie das --allow-all-urls Flag.

Vorabgenehmigung bestimmter Domänen

Um bestimmte Domänen vorab zu genehmigen, verwenden Sie --allow-url=DOMAIN.

  • Beispiel: --allow-url=github.com.

Verweigern bestimmter Domänen

Um bestimmte Domänen zu verweigern, verwenden Sie --deny-url=DOMAIN.

  • Beispiel: --deny-url=github.com.

Alle Tools, Pfade und URLs zulassen

Um alle Tools, Pfade und URLs zuzulassen, verwenden Sie --allow-all oder dessen Alias --yolo.

Dieses Kennzeichen kombiniert: * --allow-all-tools (Toolgenehmigung überspringen). * --allow-all-paths (Pfadüberprüfung deaktivieren). * --allow-all-urls (deaktiviert die URL-Überprüfung).

Tipp

Während einer interaktiven Sitzung können Sie auch alle Berechtigungen mit den Schrägstrichbefehlen /allow-all oder /yolo aktivieren.

Nächste Schritte

  •         [AUTOTITLE](/copilot/how-tos/copilot-cli/customize-copilot)