# Einen neuen GPG-Schlüssel erzeugen

Wenn du noch keinen GPG-Schlüssel besitzt, kannst du einen neuen GPG-Schlüssel für das Signieren von Commits und Tags erzeugen.

### Unterstützte GPG-Schlüsselalgorithmen

GitHub unterstützt mehrere GPG-Schlüsselalgorithmen. Wenn Du versuchst, einen Schlüssel hinzuzufügen, der mit einem nicht unterstützten Algorithmus generiert wurde, kann es zu einem Fehler kommen.

* RSA
* ElGamal
* DSA
* ECDH
* ECDSA
* EdDSA

## Einen GPG-Schlüssel erzeugen

> \[!NOTE]
> Bevor du einen neuen GPG-Schlüssel erzeugst, musst du unbedingt deine E-Mail-Adresse verifizieren. Wenn Sie Ihre E-Mail-Adresse nicht überprüft haben, können Sie Commits und Tags mit GPG nicht signieren. Weitere Informationen finden Sie unter [Deine E-Mail-Adresse verifizieren](/de/account-and-profile/how-tos/email-preferences/verifying-your-email-address).

1. Lade [die GPG-Befehlszeilentools](https://www.gnupg.org/download/) für dein Betriebssystem herunter und installiere sie. Wir empfehlen normalerweise, die aktuellste Version für dein Betriebssystem zu installieren.

2. Öffne <span class="platform-mac">Terminal</span><span class="platform-linux">Terminal</span><span class="platform-windows">Git Bash</span>.

3. Erzeuge ein GPG-Schlüsselpaar. Da es mehrere GPG-Versionen gibt, musst du möglicherweise die relevante [*Manpage*](https://en.wikipedia.org/wiki/Man_page) konsultieren, um den entsprechenden Befehl zur Schlüsselgenerierung zu finden.
   * Wenn du Version 2.1.17 oder höher verwendest, füge den folgenden Text ein, um ein GPG-Schlüsselpaar zu erzeugen.

     ```shell copy
     gpg --full-generate-key
     ```

   * Wenn du nicht Version 2.1.17 oder höher verwendest, funktioniert der `gpg --full-generate-key`-Befehl nicht. Füge den nachfolgenden Text ein, und fahre mit Schritt 6 fort.

     ```shell copy
     gpg --default-new-key-algo rsa4096 --gen-key
     ```

4. Gib an der Eingabeaufforderung den gewünschten Schlüssel ein, oder drücke `Enter`, um die Standardeinstellung zu akzeptieren.

5. Gib an der Eingabeaufforderung die gewünschte Schlüsselgröße ein, oder drücke `Enter`, um die Standardeinstellung zu akzeptieren.

6. Gib die Zeitdauer für die Gültigkeit des Schlüssels ein. Drücke `Enter`, um die Standardeinstellung festzulegen, die vorgibt, dass der Schlüssel nicht abläuft. Es wird empfohlen, diese Standardeinstellung zu übernehmen, außer es ist ein Ablaufdatum erforderlich.

7. Überprüfe, dass deine Einstellungen korrekt sind.

8. Gib deine Benutzer-ID-Informationen ein.

   > \[!NOTE]
   > Wenn Sie aufgefordert werden, Ihre E-Mail-Adresse einzugeben, stellen Sie sicher, dass Sie die überprüfte E-Mail-Adresse für Ihr GitHub Konto eingeben.

Um deine E-Mail-Adresse privat zu halten, verwende die von GitHub bereitgestellte `no-reply`-E-Mail-Adresse.

Weitere Informationen finden Sie unter [Deine E-Mail-Adresse verifizieren](/de/account-and-profile/how-tos/email-preferences/verifying-your-email-address) und [E-Mail-Adresse für Commits festlegen](/de/account-and-profile/how-tos/email-preferences/setting-your-commit-email-address).

1. Gib eine sichere Passphrase ein.

2. Verwende den Befehl `gpg --list-secret-keys --keyid-format=long`, um die Langform der GPG-Schlüssel aufzulisten, für die du sowohl über einen öffentlichen als auch einen privaten Schlüssel verfügst. Zum Signieren von Commits oder Tags ist ein privater Schlüssel erforderlich.

   ```shell copy
   gpg --list-secret-keys --keyid-format=long
   ```

   > \[!NOTE]
   > Bei einigen GPG-Installationen unter Linux musst du stattdessen möglicherweise `gpg2 --list-keys --keyid-format LONG` verwenden, um eine Liste deiner vorhandenen Schlüssel anzuzeigen. In diesem Fall musst du auch Git für die Verwendung von `gpg2` konfigurieren, indem du `git config --global gpg.program gpg2` ausführst.

3. Kopiere aus der Liste der GPG-Schlüssel die lange Form der GPG-Schlüssel-ID, die du verwenden möchtest. In diesem Beispiel lautet die GPG-Schlüssel-ID `3AA5C34371567BD2`:

   ```shell copy
   $ gpg --list-secret-keys --keyid-format=long
   /Users/hubot/.gnupg/secring.gpg
   ------------------------------------
   sec   4096R/3AA5C34371567BD2 2016-03-10 [expires: 2017-03-10]
   uid                          Hubot <hubot@example.com>
   ssb   4096R/4BB6D45482678BE3 2016-03-10
   ```

4. Füge den folgenden Text ein, und ersetzte dabei die GPG-Schlüssel-ID, die du verwenden möchtest. In diesem Beispiel lautet die GPG-Schlüssel-ID `3AA5C34371567BD2`:

   ```shell copy
   gpg --armor --export 3AA5C34371567BD2
   # Prints the GPG key ID, in ASCII armor format
   ```

5. Kopiere deinen GPG-Schlüssel, der mit `-----BEGIN PGP PUBLIC KEY BLOCK-----` beginnt und auf `-----END PGP PUBLIC KEY BLOCK-----` endet.

6. [Fügen Sie den GPG-Schlüssel zu Ihrem GitHub-Konto hinzu](/de/authentication/managing-commit-signature-verification/adding-a-gpg-key-to-your-github-account).

## Weiterführende Lektüre

* [Auf das Vorhandensein von GPG-Schlüsseln prüfen](/de/authentication/managing-commit-signature-verification/checking-for-existing-gpg-keys)
* [Hinzufügen eines GPG-Schlüssels zu Ihrem GitHub Konto](/de/authentication/managing-commit-signature-verification/adding-a-gpg-key-to-your-github-account)
* [Git über Ihren Signaturschlüssel informieren](/de/authentication/managing-commit-signature-verification/telling-git-about-your-signing-key)
* [Verknüpfen einer E-Mail-Adresse mit deinem GPG-Schlüssel](/de/authentication/managing-commit-signature-verification/associating-an-email-with-your-gpg-key)
* [Signieren von Commits](/de/authentication/managing-commit-signature-verification/signing-commits)
* [Tags signieren](/de/authentication/managing-commit-signature-verification/signing-tags)