Skip to main content

Enterprise Server 3.15 ist derzeit als Release Candidate verfügbar.

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 Ihre GitHub Enterprise Server-Instance verknüpft ist, kannst du mit dem Signieren von Commits und Tags beginnen.

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 findest du 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 TerminalTerminalGit Bash.

  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
    

    Hinweis: Bei einigen GPG-Installationen unter Linux musst du möglicherweise stattdessen gpg2 --list-keys --keyid-format LONG verwenden, um eine Liste einer 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 standardmäßig signiert werden, gib den folgenden Befehl ein:

    git config --global commit.gpgsign true
    

    Weitere Informationen findest du unter Commits signieren.

  7. Wenn du die GPG-Suite nicht verwendest, führe den folgenden Befehl in der zsh Shell aus, um den GPG-Schlüssel zu deiner .zshrc Datei hinzuzufügen, sofern vorhanden, oder zu deiner .zprofileDatei:

    $ if [ -r ~/.zshrc ]; then echo -e '\nexport GPG_TTY=$(tty)' >> ~/.zshrc; \
      else echo -e '\nexport GPG_TTY=$(tty)' >> ~/.zprofile; fi
    

    Wenn du die bash Shell verwendest, führe diesen Befehl aus:

    $ if [ -r ~/.bash_profile ]; then echo -e '\nexport GPG_TTY=$(tty)' >> ~/.bash_profile; \
      else echo -e '\nexport GPG_TTY=$(tty)' >> ~/.profile; fi
    
  8. Wenn du zur Eingabe einer PIN oder Passphrase aufgefordert werden möchtest, installiere optional pinentry-mac. Verwende z. B. Homebrew:

    brew install pinentry-mac
    echo "pinentry-program $(which pinentry-mac)" >> ~/.gnupg/gpg-agent.conf
    killall gpg-agent
    

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 Ihre GitHub Enterprise Server-Instance verknüpft ist, kannst du mit dem Signieren von Commits und Tags beginnen.

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 findest du 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 TerminalTerminalGit Bash.

  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
    

    Hinweis: Bei einigen GPG-Installationen unter Linux musst du möglicherweise stattdessen gpg2 --list-keys --keyid-format LONG verwenden, um eine Liste einer 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 standardmäßig signiert werden, gib den folgenden Befehl ein:

    git config --global commit.gpgsign true
    

    Weitere Informationen findest du unter Commits signieren.

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 Ihre GitHub Enterprise Server-Instance verknüpft ist, kannst du mit dem Signieren von Commits und Tags beginnen.

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 findest du 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 TerminalTerminalGit Bash.

  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
    

    Hinweis: Bei einigen GPG-Installationen unter Linux musst du möglicherweise stattdessen gpg2 --list-keys --keyid-format LONG verwenden, um eine Liste einer 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 standardmäßig signiert werden, gib den folgenden Befehl ein:

    git config --global commit.gpgsign true
    

    Weitere Informationen findest du 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 findest du unter Generieren eines neuen SSH-Schlüssels und Hinzufügen des Schlüssels zum ssh-agent.

Hinweis: 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 TerminalTerminalGit Bash.

  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
    

Git über Deinen X.509-Schlüssel informieren

Du kannst smimesign verwenden, um Commits und Tags mit S/MIME zu signieren.

Hinweis: Die S/MIME-Signaturüberprüfung ist in Git 2.19 oder höher verfügbar. Informationen zum Aktualisieren deiner Version von Git findest du auf der Git-Website.

  1. Installiere smimesign.

  2. Öffne TerminalTerminalGit Bash.

  3. Lege fest, dass Git S/MIME zum Signieren von Commits und Tags verwendet. Verwende in Git 2.19 oder höher die Befehle git config gpg.x509.program und git config gpg.format:

    • Führe den folgenden Befehl aus, um S/MIME zum Signieren sämtlicher Repositorys zu verwenden:

      git config --global gpg.x509.program smimesign
      git config --global gpg.format x509
      
    • Führe den folgenden Befehl aus, um S/MIME zum Signieren eines einzelnen Repositorys zu verwenden:

      cd PATH-TO-REPOSITORY
      git config --local gpg.x509.program smimesign
      git config --local gpg.format x509
      

      Verwende in Git 2.18 oder niedrigeren Versionen den Befehl git config gpg.program:

    • Führe den folgenden Befehl aus, um S/MIME zum Signieren sämtlicher Repositorys zu verwenden:

      git config --global gpg.program smimesign
      
    • Führe den folgenden Befehl aus, um S/MIME zum Signieren eines einzelnen Repositorys zu verwenden:

      cd  PATH-TO-REPOSITORY
      git config --local gpg.program smimesign
      

      Wenn Du einen X.509-Schlüssel verwendest, der mit Deiner Beitragender-Identität übereinstimmt, kannst Du Commits und Tags signieren.

  4. Wenn du keinen X.509-Schlüssel verwendest, der deiner Committeridentität entspricht, liste mit dem Befehl smimesign --list-keys die X.509-Schlüssel auf, für die du sowohl über ein Zertifikat als auch über einen privaten Schlüssel verfügst.

    smimesign --list-keys
    
  5. Kopiere die Zertifikats-ID des gewünschten X.509-Schlüssels aus der Liste der X.509-Schlüssel. In diesem Beispiel lautet die Zertifikat-ID 0ff455a2708394633e4bb2f88002e3cd80cbd76f:

    $ smimesign --list-keys
                 ID: 0ff455a2708394633e4bb2f88002e3cd80cbd76f
                S/N: a2dfa7e8c9c4d1616f1009c988bb70f
          Algorithm: SHA256-RSA
           Validity: 2017-11-22 00:00:00 +0000 UTC - 2020-11-22 12:00:00 +0000 UTC
             Issuer: CN=DigiCert SHA2 Assured ID CA,OU=www.digicert.com,O=DigiCert Inc,C=US
            Subject: CN=Octocat,O=GitHub\, Inc.,L=San Francisco,ST=California,C=US
             Emails: octocat@github.com
    
  6. Um Deinen X.509-Signaturschlüssel in Git festzulegen, füge den folgenden Text ein, und ersetze die zuvor kopierte Zertifikats-ID.

    • Um Deinen X.509-Schlüssel zum Signieren sämtlicher Repositorys zu verwenden:

      git config --global user.signingkey 0ff455a2708394633e4bb2f88002e3cd80cbd76f
      
    • Um Deinen X.509-Schlüssel zum Signieren eines einzelnen Repositorys zu verwenden:

      cd  PATH-TO-REPOSITORY
      git config --local user.signingkey 0ff455a2708394633e4bb2f88002e3cd80cbd76f
      

Git über Deinen X.509-Schlüssel informieren

Du kannst smimesign verwenden, um Commits und Tags mit S/MIME zu signieren.

Hinweis: Die S/MIME-Signaturüberprüfung ist in Git 2.19 oder höher verfügbar. Informationen zum Aktualisieren deiner Version von Git findest du auf der Git-Website.

  1. Installiere smimesign.

  2. Öffne TerminalTerminalGit Bash.

  3. Lege fest, dass Git S/MIME zum Signieren von Commits und Tags verwendet. Verwende in Git 2.19 oder höher die Befehle git config gpg.x509.program und git config gpg.format:

    • Führe den folgenden Befehl aus, um S/MIME zum Signieren sämtlicher Repositorys zu verwenden:

      git config --global gpg.x509.program smimesign
      git config --global gpg.format x509
      
    • Führe den folgenden Befehl aus, um S/MIME zum Signieren eines einzelnen Repositorys zu verwenden:

      cd PATH-TO-REPOSITORY
      git config --local gpg.x509.program smimesign
      git config --local gpg.format x509
      

      Verwende in Git 2.18 oder niedrigeren Versionen den Befehl git config gpg.program:

    • Führe den folgenden Befehl aus, um S/MIME zum Signieren sämtlicher Repositorys zu verwenden:

      git config --global gpg.program smimesign
      
    • Führe den folgenden Befehl aus, um S/MIME zum Signieren eines einzelnen Repositorys zu verwenden:

      cd  PATH-TO-REPOSITORY
      git config --local gpg.program smimesign
      

      Wenn Du einen X.509-Schlüssel verwendest, der mit Deiner Beitragender-Identität übereinstimmt, kannst Du Commits und Tags signieren.

  4. Wenn du keinen X.509-Schlüssel verwendest, der deiner Committeridentität entspricht, liste mit dem Befehl smimesign --list-keys die X.509-Schlüssel auf, für die du sowohl über ein Zertifikat als auch über einen privaten Schlüssel verfügst.

    smimesign --list-keys
    
  5. Kopiere die Zertifikats-ID des gewünschten X.509-Schlüssels aus der Liste der X.509-Schlüssel. In diesem Beispiel lautet die Zertifikat-ID 0ff455a2708394633e4bb2f88002e3cd80cbd76f:

    $ smimesign --list-keys
                 ID: 0ff455a2708394633e4bb2f88002e3cd80cbd76f
                S/N: a2dfa7e8c9c4d1616f1009c988bb70f
          Algorithm: SHA256-RSA
           Validity: 2017-11-22 00:00:00 +0000 UTC - 2020-11-22 12:00:00 +0000 UTC
             Issuer: CN=DigiCert SHA2 Assured ID CA,OU=www.digicert.com,O=DigiCert Inc,C=US
            Subject: CN=Octocat,O=GitHub\, Inc.,L=San Francisco,ST=California,C=US
             Emails: octocat@github.com
    
  6. Um Deinen X.509-Signaturschlüssel in Git festzulegen, füge den folgenden Text ein, und ersetze die zuvor kopierte Zertifikats-ID.

    • Um Deinen X.509-Schlüssel zum Signieren sämtlicher Repositorys zu verwenden:

      git config --global user.signingkey 0ff455a2708394633e4bb2f88002e3cd80cbd76f
      
    • Um Deinen X.509-Schlüssel zum Signieren eines einzelnen Repositorys zu verwenden:

      cd  PATH-TO-REPOSITORY
      git config --local user.signingkey 0ff455a2708394633e4bb2f88002e3cd80cbd76f
      

Weitere Informationen