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.
Hinweis
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.
-
Öffne TerminalTerminalGit Bash.
-
Wenn du Git zuvor so konfiguriert hast, dass beim Signieren mit
--gpg-signein anderes Schlüsselformat verwendet wird, hebe diese Konfiguration auf, damit das Standardformatopenpgpverwendet wird.git config --global --unset gpg.format -
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
gpg --list-secret-keys --keyid-format=longHinweis
Bei einigen GPG-Installationen unter Linux musst du stattdessen möglicherweise
gpg2 --list-keys --keyid-format LONGverwenden, um eine Liste deiner vorhandenen Schlüssel anzuzeigen. In diesem Fall musst du auch Git für die Verwendung vongpg2konfigurieren, indem dugit config --global gpg.program gpg2ausführst. -
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
$ 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 -
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 3AA5C34371567BD2Alternativ können Sie einen Unterschlüssel verwenden. In diesem Beispiel lautet die GPG-Unterschlüssel-ID
4BB6D45482678BE3:git config --global user.signingkey 4BB6D45482678BE3Wenn 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:\!. -
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 trueWeitere Informationen finden Sie unter Commits signieren.
-
Wenn du die GPG-Suite nicht verwendest, führe den folgenden Befehl in der
zshShell aus, um den GPG-Schlüssel zu deiner.zshrcDatei 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; fiWenn du die
bashShell 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 -
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 GitHub.com verknüpft ist, kannst du mit dem Signieren von Commits und Tags beginnen.
Hinweis
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.
-
Öffne TerminalTerminalGit Bash.
-
Wenn du Git zuvor so konfiguriert hast, dass beim Signieren mit
--gpg-signein anderes Schlüsselformat verwendet wird, hebe diese Konfiguration auf, damit das Standardformatopenpgpverwendet wird.git config --global --unset gpg.format -
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
gpg --list-secret-keys --keyid-format=longHinweis
Bei einigen GPG-Installationen unter Linux musst du stattdessen möglicherweise
gpg2 --list-keys --keyid-format LONGverwenden, um eine Liste deiner vorhandenen Schlüssel anzuzeigen. In diesem Fall musst du auch Git für die Verwendung vongpg2konfigurieren, indem dugit config --global gpg.program gpg2ausführst. -
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
$ 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 -
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 3AA5C34371567BD2Alternativ können Sie einen Unterschlüssel verwenden. In diesem Beispiel lautet die GPG-Unterschlüssel-ID
4BB6D45482678BE3:git config --global user.signingkey 4BB6D45482678BE3Wenn 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:\!. -
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 trueWeitere Informationen finden Sie 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 GitHub.com verknüpft ist, kannst du mit dem Signieren von Commits und Tags beginnen.
Hinweis
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.
-
Öffne TerminalTerminalGit Bash.
-
Wenn du Git zuvor so konfiguriert hast, dass beim Signieren mit
--gpg-signein anderes Schlüsselformat verwendet wird, hebe diese Konfiguration auf, damit das Standardformatopenpgpverwendet wird.git config --global --unset gpg.format -
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
gpg --list-secret-keys --keyid-format=longHinweis
Bei einigen GPG-Installationen unter Linux musst du stattdessen möglicherweise
gpg2 --list-keys --keyid-format LONGverwenden, um eine Liste deiner vorhandenen Schlüssel anzuzeigen. In diesem Fall musst du auch Git für die Verwendung vongpg2konfigurieren, indem dugit config --global gpg.program gpg2ausführst. -
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
$ 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 -
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 3AA5C34371567BD2Alternativ können Sie einen Unterschlüssel verwenden. In diesem Beispiel lautet die GPG-Unterschlüssel-ID
4BB6D45482678BE3:git config --global user.signingkey 4BB6D45482678BE3Wenn 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:\!. -
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 trueWeitere Informationen finden Sie unter Commits signieren.
-
Führe zum Hinzufügen des
.bashrcGPG-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.
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.
-
Öffne TerminalTerminalGit Bash.
-
Konfiguriere Git zur Verwendung von SSH zum Signieren von Commits und Tags:
git config --global gpg.format ssh -
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.
-
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.programundgit 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 x509Verwende 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 smimesignWenn Du einen X.509-Schlüssel verwendest, der mit Deiner Beitragender-Identität übereinstimmt, kannst Du Commits und Tags signieren.
-
-
Wenn du keinen X.509-Schlüssel verwendest, der deiner Committeridentität entspricht, liste mit dem Befehl
smimesign --list-keysdie 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
-
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.programundgit 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 x509Verwende 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 smimesignWenn Du einen X.509-Schlüssel verwendest, der mit Deiner Beitragender-Identität übereinstimmt, kannst Du Commits und Tags signieren.
-
-
Wenn du keinen X.509-Schlüssel verwendest, der deiner Committeridentität entspricht, liste mit dem Befehl
smimesign --list-keysdie 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
-