# Konfigurieren von GitHub Copilot CLI

Konfigurieren von vertrauenswürdigen Verzeichnissen, Toolzugriff und Pfad- und URL-Berechtigungen für Copilot CLI

## Einleitung

Copilot CLI verfügt über mehrere Konfigurationsoptionen, die steuern, auf was sie zugreifen und in Ihrem Auftrag tun kann.

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

* Installieren Sie Copilot CLI. Weitere Informationen findest du unter [Installation von GitHub Copilot CLI](/de/enterprise-cloud@latest/copilot/how-tos/copilot-cli/set-up-copilot-cli/install-copilot-cli).

## Festlegen vertrauenswürdiger Verzeichnisse

Vertrauenswürdige Verzeichnisse kontrollieren, wo Copilot CLI Dateien lesen, ändern und ausführen kann. Das Vertrauen in ein Verzeichnis hat Sicherheitsauswirkungen, siehe [Sicherheitsüberlegungen](/de/enterprise-cloud@latest/copilot/concepts/agents/copilot-cli/about-copilot-cli#security-considerations).

### Vertrauen in ein Verzeichnis

Wenn Sie eine GitHub Copilot CLI Sitzung starten, werden Sie aufgefordert, zu bestätigen, dass Sie den Dateien vertrauen, die sich in dem Verzeichnis befinden, aus dem Sie die CLI gestartet haben, sowie in dessen Unterverzeichnissen.

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. Sie sollten diese zweite Option nur auswählen, wenn Sie sicher sind, dass dieser Standort immer ein sicherer Ort für Copilot den Betrieb ist.

### Bearbeiten vertrauenswürdiger Verzeichnisse

Sie können die Liste der dauerhaft vertrauenswürdigen Verzeichnisse bearbeiten. Vertrauenswürdige Verzeichnisse werden in der automatisch verwalteten `config.json` Datei gespeichert.

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. Dadurch würden `~/.copilot/` und `$HOME\.copilot\` in den oben genannten Pfaden geändert.

1. Bearbeiten Sie den Inhalt des `trustedFolders` Arrays.

## Festlegen zulässiger Tools

Sie können steuern, welche Tools Copilot CLI verwendet werden können, indem Sie entweder auf Genehmigungsaufforderungen reagieren, wenn Copilot versucht wird, ein Tool zu verwenden, oder indem Sie Berechtigungen über Befehlszeilenkennzeichnungen angeben.

Beachten Sie, dass das Zulassen des Toolzugriffs sicherheitsrelevante Auswirkungen hat, siehe [Sicherheitsüberlegungen](/de/enterprise-cloud@latest/copilot/concepts/agents/copilot-cli/about-copilot-cli#security-considerations).

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

Das erste Mal, wenn Copilot ein Tool verwenden muss, das möglicherweise eine Genehmigung erfordert—Beispiel: `touch`, `chmod`, `node` oder `sed`—werden Sie gefragt, ob Sie die Ausführung zulassen 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. Aufforderung Copilot zum Ausführen einer Aufgabe, die ein Tool erfordert. Beispiel:

   ```shell
   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, damit Copilot diesen bestimmten Befehl nur dieses Mal ausführen kann. 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 zuzulassen, dass Copilot während der laufenden Sitzung dieses Tool verwendet. Dabei wirst du in neuen Sitzungen oder beim Fortsetzen der aktuellen Sitzung in Zukunft erneut um deine Genehmigung gebeten. Wenn Sie diese Option auswählen, erlauben Sie Copilot, dieses Tool auf jede geeignete Weise zu verwenden.

     Wenn es vorkommt, dass Copilot Sie auffordert, den Befehl `rm ./this-file.txt` auszuführen, und Sie Option 2 wählen, dann kann Copilot während des aktuellen Ablaufs dieser Sitzung jeden beliebigen `rm`-Befehl (z.B. `rm -rf ./*`) ausführen, ohne Ihre Genehmigung einzuholen.

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

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

### Zulassen der Verwendung von Tools ohne manuelle Genehmigung

Sie können Befehlszeilen-Flags verwenden, um Tools festzulegen, die Copilot ohne um Ihre Zustimmung zu bitten, verwendet werden können.

#### Alle Werkzeuge zulassen

Verwenden Sie `--allow-all-tools`, um Copilot zu gestatten, jedes Tool zu verwenden, ohne Ihre Genehmigung einzuholen.

* Beispiel:

  ```shell
  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:

  ```shell
  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`, damit Copilot ein bestimmtes Tool verwenden kann, ohne Ihre Genehmigung einzuholen.

* Beispiel:

  ```shell
  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 beliebigen `rm`-Befehl verwendet, gehen Sie wie folgt vor:

  ```shell
  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 zu verhindern, dass Copilot`git push`verwendet, nutzen Sie:

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

Die Angabe des Tools ist optional. Beispielsweise erlaubt es `copilot --allow-tool='shell'`Copilot, beliebige Shell-Befehle ohne individuelle Genehmigung zu verwenden.

#### 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 z. B. Copilot Dateien ohne Ihre individuelle Genehmigung bearbeiten zu können, verwenden Sie:

  ```shell
  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` von MCP-Server `My-MCP-Server` verwendet, verwenden Sie Folgendes:

  ```shell
  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.

Sie können den Namen eines MCP-Servers finden, indem Sie `/mcp` im interaktiven Modus von Copilot CLI eingeben und den Server aus der angezeigten Liste auswählen.

### Zulassen einiger Tools beim Verweigern anderer Tools

Um genau zu bestimmen, welche Tools Copilot verwendet werden können, ohne ihre Genehmigung zu verlangen, können Sie eine Kombination aus Genehmigungsoptionen verwenden. Beispiel:

* Um zu verhindern, dass Copilot die Befehle `rm` und `git push` nutzt, aber alle anderen Tools automatisch zugelassen werden, verwenden Sie Folgendes:

  ```shell
  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 mit dem Namen `My-MCP-Server`verwendet wird, aber alle anderen Tools von diesem Server ohne individuelle Genehmigung verwendet werden können, verwenden Sie:

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

### Einschränken der verfügbaren Tools

Um auf eine bestimmte Gruppe von Tools zu beschränken Copilot , verwenden Sie `--available-tools`.

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

## 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 Systemtemp-Verzeichnis 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.

> \[!WARNING]
> 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` Kennzeichen beim Starten 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 darf. 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.

> \[!WARNING]
> 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).

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

> \[!NOTE] Wenn Sie über eine Copilot Business- oder Copilot Enterprise-Lizenz verfügen, können diese Befehle von einem Enterprise-Administrator blockiert werden.

## Einschränken des Zugriffs auf Dateien

Mit den verschiedenen `--allow-all...` Optionen können Sie nicht entscheiden, ob Sie auf einzelne Tools, Dateien und URLs zugreifen dürfen Copilot . Wenn Sie sie jedoch verwenden, wird der Umfang zum Copilot Ausführen von Aktionen erweitert, die Sie möglicherweise nicht möchten, z. B. das Ändern von Dateien außerhalb des Repositorys, in dem Sie arbeiten.

Um dieses Risiko zu minimieren, können Sie die CLI anweisen, ihre Befehle (lokale Sandboxing) zu sandkastenn, oder Sie können die gesamte Copilot CLI Sitzung in einer Remote-, Sandkastenumgebung (Cloud-Sandboxing) ausführen. Weitere Informationen findest du unter [Informationen zu Cloud- und lokalen Sandboxes für GitHub Copilot](/de/enterprise-cloud@latest/copilot/concepts/about-cloud-and-local-sandboxes).

## Weiterführende Lektüre

* [Anpassen GitHub Copilot CLI](/de/enterprise-cloud@latest/copilot/how-tos/copilot-cli/customize-copilot)
* [GitHub Copilot CLI-Konfigurationsverzeichnis](/de/enterprise-cloud@latest/copilot/reference/copilot-cli-reference/cli-config-dir-reference)