Skip to main content

Git zu Signaturschlüsseln benachrichtigen

Um Commits lokal zu signieren, müssen Sie Git darüber informieren, dass es einen GPG-, SSH- oder X.509-Schlüssel gibt, den Sie verwenden möchten.

Platform navigation

Git deinen GPG-Schlüssel mitteilen

Wenn du einen GPG-Schlüssel verwendest, der mit deiner Committer-Identität und deiner verifizierten E-Mail-Adresse übereinstimmt, die mit deinem Konto auf GitHub.com verknüpft ist, kannst du mit dem Signieren von Commits und Tags beginnen.

Note

Wenn du keinen GPG-Schlüssel hast, der deiner Beitragender-Identität entspricht, musst du deinen Schlüssel mit einer E-Mail-Adresse verknüpfen. Weitere Informationen finden Sie unter Verknüpfen einer E-Mail-Adresse mit deinem GPG-Schlüssel.

Wenn du mehrere GPG-Schlüssel hast, musst du Git mitteilen, welcher zu verwenden ist.

  1. Öffne Terminal.

  2. Wenn du Git zuvor so konfiguriert hast, dass beim Signieren mit --gpg-sign ein anderes Schlüsselformat verwendet wird, hebe diese Konfiguration auf, damit das Standardformat openpgp verwendet wird.

    git config --global --unset gpg.format
    
  3. 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
    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.

  4. 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
    $ 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
    
  5. Um deinen primären GPG-Signaturschlüssel in Git festzulegen, fügst du unten den entsprechenden Text ein, also die ID des primären GPG-Schlüssels, den du verwenden möchtest. In diesem Beispiel lautet die GPG-Schlüssel-ID 3AA5C34371567BD2:

    git config --global user.signingkey 3AA5C34371567BD2
    

    Alternativ können Sie einen Unterschlüssel verwenden. In diesem Beispiel lautet die GPG-Unterschlüssel-ID 4BB6D45482678BE3:

    git config --global user.signingkey 4BB6D45482678BE3
    

    Wenn Sie mehrere Schlüssel und Unterschlüssel verwenden, sollten Sie dem Schlüssel ein Ausrufezeichen ! anfügen, um Git mitzuteilen, dass dies Ihr bevorzugter Schlüssel ist. Gelegentlich müssen das Ausrufezeichen als Escapezeichen mit einem umgekehrten Schrägstrich versehen: \!.

  6. Optional: Um Git so zu konfigurieren, dass alle Commits und Tags standardmäßig signiert werden, gib den folgenden Befehl ein:

    git config --global commit.gpgsign true
    git config --global tag.gpgSign true
    

    Weitere Informationen finden Sie unter Commits signieren.

  7. Führe zum Hinzufügen des .bashrc GPG-Schlüssels zur Startdatei den folgenden Befehl aus:

    [ -f ~/.bashrc ] && echo -e '\nexport GPG_TTY=$(tty)' >> ~/.bashrc
    

Mitteilung über deinen SSH-Schlüssel an Git

Du kannst einen vorhandenen SSH-Schlüssel zum Signieren von Commits und Tags verwenden oder einen neuen Schlüssel speziell zum Signieren generieren. Weitere Informationen finden Sie unter Generieren eines neuen SSH-Schlüssels und Hinzufügen des Schlüssels zum ssh-agent.

Note

Die SSH-Signaturüberprüfung ist in Git 2.34 oder höher verfügbar. Informationen zum Aktualisieren deiner Version von Git findest du auf der Git-Website.

  1. Öffne Terminal.

  2. Konfiguriere Git zur Verwendung von SSH zum Signieren von Commits und Tags:

    git config --global gpg.format ssh
    
  3. Um deinen SSH-Signaturschlüssel in Git festzulegen, füge den folgenden Text ein und ersetze /PATH/TO/.SSH/KEY.PUB durch den Pfad zu dem öffentlichen Schlüssel, den du verwenden möchtest.

    git config --global user.signingkey /PATH/TO/.SSH/KEY.PUB
    

Weiterführende Themen