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 deine GitHub Enterprise Server-Instanz 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.
-
Ö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 Standardformatopenpgp
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 vongpg2
konfigurieren, indem dugit config --global gpg.program gpg2
ausführst.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`:
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 3AA5C34371567BD2
1. Optional: Um Git so zu konfigurieren, dass alle Commits standardmäßig signiert werden, gib den folgenden Befehl ein:$ git config --global user.signingkey 4BB6D45482678BE3!
$ git config --global commit.gpgsign true
Weitere Informationen findest du unter Commits signieren.
-
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.zprofile
Datei:$ 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
-
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 deine GitHub Enterprise Server-Instanz 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.
-
Ö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 Standardformatopenpgp
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 vongpg2
konfigurieren, indem dugit config --global gpg.program gpg2
ausführst.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`:
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 3AA5C34371567BD2
1. Optional: Um Git so zu konfigurieren, dass alle Commits standardmäßig signiert werden, gib den folgenden Befehl ein:$ git config --global user.signingkey 4BB6D45482678BE3!
$ 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 deine GitHub Enterprise Server-Instanz 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.
-
Ö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 Standardformatopenpgp
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 vongpg2
konfigurieren, indem dugit config --global gpg.program gpg2
ausführst.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`:
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 3AA5C34371567BD2
1. Optional: Um Git so zu konfigurieren, dass alle Commits standardmäßig signiert werden, gib den folgenden Befehl ein:$ git config --global user.signingkey 4BB6D45482678BE3!
$ git config --global commit.gpgsign true
Weitere Informationen findest du unter Commits signieren.
-
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.
- Installiere smimesign.
- Öffne TerminalTerminalGit Bash.
- 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
undgit 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:
Verwende in Git 2.18 oder niedrigeren Versionen den Befehl$ cd PATH-TO-REPOSITORY $ git config --local gpg.x509.program smimesign $ git config --local gpg.format x509
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:
Wenn Du einen X.509-Schlüssel verwendest, der mit Deiner Beitragender-Identität übereinstimmt, kannst Du Commits und Tags signieren.$ cd PATH-TO-REPOSITORY $ git config --local gpg.program smimesign
- 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
- 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
- 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