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

Hinweis: Bevor Du einen neuen GPG-Schlüssel erzeugst, musst Du unbedingt Deine E-Mail-Adresse verifizieren. Wenn Du Deine E-Mail-Adresse noch nicht verifiziert hast, kannst Du keine Commits und Tags mit GPG signieren. Weitere Informationen findest Du unter „E-Mail-Adresse verifizieren“.

  1. Lade die GPG-Befehlszeilentools für Dein Betriebssystem herunter und installiere sie. Wir empfehlen normalerweise, die aktuellste Version für Dein Betriebssystem zu installieren.

  2. Öffne TerminalTerminalGit Bash.

  3. Erzeuge ein GPG-Schlüsselpaar. Da es mehrere Versionen von GPG gibt, musst Du den richtigen Befehl zur Schlüsselerzeugung allenfalls auf der entsprechenden man page nachschlagen. Dein Schlüssel muss RSA verwenden.

    • Wenn Du Version 2.1.17 oder höher verwendest, füge den folgenden Text ein, um ein GPG-Schlüsselpaar zu erzeugen.
      $ gpg --full-generate-key
    • Wenn Du eine ältere Version als 2.1.17 verwendest, funktioniert der Befehl gpg --full-generate-key nicht. Füge den nachfolgenden Text ein, und fahre mit Schritt 6 fort.
      $ gpg --default-new-key-algo rsa4096 --gen-key
  4. Legen Sie bei der Eingabeaufforderung die gewünschte Schlüsselart fest, oder drücken Sie die Eingabetaste, um die Standardeinstellung RSA and RSA (RSA und RSA) zu akzeptieren.

  5. Gib die gewünschte Schlüsselgröße ein. Den Schlüssel muss mindestens 4096 Bits sein.

  6. Gib die Zeitdauer für die Gültigkeit des Schlüssels ein. Drücke Enter (Eingabetaste), um die Standardeinstellung festzulegen, die vorgibt, dass der Schlüssel nicht abläuft.

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

  8. Gib Deine Benutzer-ID-Informationen ein.

    Hinweis: Wenn Du zur Eingabe Deiner E-Mail-Adresse aufgefordert wirst, stelle sicher, dass Du die verifizierte E-Mail-Adresse für Dein GitHub-Konto eingibst. To keep your email address private, use your GitHub-provided no-reply email address. Weitere Informationen findest Du unter „Deine E-Mail-Adresse verifizieren“ und „Deine Commit-E-Mail-Adresse festlegen“.

  9. Gib eine sichere Passphrase ein.

  10. Use the gpg --list-secret-keys --keyid-format=long command to list the long form of the GPG keys for which you have both a public and private key. Zum Signieren von Commits oder Tags ist ein privater Schlüssel erforderlich.

    $ gpg --list-secret-keys --keyid-format=long

    Hinweis: Einige GPG-Installationen auf Linux verlangen möglicherweise, dass der Befehl gpg2 --list-keys --keyid-format LONG gebraucht wird, um stattdessen eine Liste Deiner vorhandenen Schlüssel anzuzeigen. In diesem Fall musst Du konfigurieren, dass Git gpg2 verwendet, indem Du git config --global gpg.program gpg2 ausführen.

  11. From the list of GPG keys, copy the long form of the GPG key ID you'd like to use. Im folgenden Beispiel lautet die GPG-Schlüssel-ID 3AA5C34371567BD2:

    $ gpg --list-secret-keys --keyid-format=long
    /Users/hubot/.gnupg/secring.gpg
    ------------------------------------
    sec   4096R/3AA5C34371567BD2 2016-03-10 [expires: 2017-03-10]
    uid                          Hubot 
    ssb   4096R/42B317FD4BA89E7A 2016-03-10
  12. Füge den folgenden Text ein, und ersetzte dabei die GPG-Schlüssel-ID, die Du verwenden möchtest. Im folgenden Beispiel lautet die GPG-Schlüssel-ID 3AA5C34371567BD2:

    $ gpg --armor --export 3AA5C34371567BD2
    # Gibt die GPG-Schluessel-ID im ASCII armor format aus
  13. Kopiere Deinen GPG-Schlüssel, beginnend bei -----BEGIN PGP PUBLIC KEY BLOCK----- und endend bei -----END PGP PUBLIC KEY BLOCK-----.

  14. Füge den GPG-Schlüssel zu Deinem GitHub-Konto hinzu.

Weiterführende Informationen

Did this doc help you?Privacy policy

Help us make these docs great!

All GitHub docs are open source. See something that's wrong or unclear? Submit a pull request.

Make a contribution

Oder, learn how to contribute.