Skip to main content
We publish frequent updates to our documentation, and translation of this page may still be in progress. For the most current information, please visit the English documentation.

Diese Version von GitHub Enterprise wird eingestellt am 2023-03-15. Es wird keine Patch-Freigabe vorgenommen, auch nicht für kritische Sicherheitsprobleme. Für bessere Leistung, verbesserte Sicherheit und neue Features aktualisiere auf die neueste Version von GitHub Enterprise. Wende dich an den GitHub Enterprise-Support, um Hilfe zum Upgrade zu erhalten.

Git zu Signaturschlüsseln benachrichtigen

Um Commits lokal zu signieren, musst du Git darüber informieren, dass es einen GPG- oder X.509-Schlüssel gibt, den du verwenden möchtest.

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 your 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 „Zuordnen einer E-Mail zu deinem GPG-Schlüssel.“

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

  1. Öffne TerminalTerminalGit Bash. 1. 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
    ``` 1. 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
    

    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.

    1. 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 ssb 4096R/4BB6D45482678BE3 2016-03-10 ``` 1. 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 kannst du beim Festlegen eines Unterschlüssels das `!`-Suffix anfügen. In diesem Beispiel lautet die GPG-Unterschlüssel-ID `4BB6D45482678BE3`:
    $ git config --global user.signingkey 4BB6D45482678BE3!
    1. 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 Signieren von Commits.

  2. 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 'export GPG_TTY=$(tty)' >> ~/.zshrc; \
      else echo 'export GPG_TTY=$(tty)' >> ~/.zprofile; fi

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

    $ if [ -r ~/.bash_profile ]; then echo 'export GPG_TTY=$(tty)' >> ~/.bash_profile; \
      else echo 'export GPG_TTY=$(tty)' >> ~/.profile; fi
  3. 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

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 your 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 „Zuordnen einer E-Mail zu deinem GPG-Schlüssel.“

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

  1. Öffne TerminalTerminalGit Bash. 1. 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
    ``` 1. 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
    

    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.

    1. 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 ssb 4096R/4BB6D45482678BE3 2016-03-10 ``` 1. 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 kannst du beim Festlegen eines Unterschlüssels das `!`-Suffix anfügen. In diesem Beispiel lautet die GPG-Unterschlüssel-ID `4BB6D45482678BE3`:
    $ git config --global user.signingkey 4BB6D45482678BE3!
    1. 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 Signieren von Commits.

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 your 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 „Zuordnen einer E-Mail zu deinem GPG-Schlüssel.“

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

  1. Öffne TerminalTerminalGit Bash. 1. 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
    ``` 1. 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
    

    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.

    1. 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 ssb 4096R/4BB6D45482678BE3 2016-03-10 ``` 1. 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 kannst du beim Festlegen eines Unterschlüssels das `!`-Suffix anfügen. In diesem Beispiel lautet die GPG-Unterschlüssel-ID `4BB6D45482678BE3`:
    $ git config --global user.signingkey 4BB6D45482678BE3!
    1. 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 Signieren von Commits.

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

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

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.
  1. 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
  2. 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
  3. 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

Weiterführende Themen