Die Git-GPG-Signierung schlägt ohne eine klare Meldung fehl

Lesezeit: 2 Minuten

Benutzeravatar von Boris
Boris

Wenn ich mein Git so einstelle, dass es mit meinem GPG-Schlüssel signiert, schlägt es fehl. Ich habe GIT_TRACE ausprobiert und es gibt mir nicht wirklich mehr Informationen:

$ GIT_TRACE=1 git commit
15:29:35.112157 git.c:344               trace: built-in: git 'commit'
15:29:35.115745 run-command.c:626       trace: run_command: 'code --wait' '/Users/b/VurbAgency/haarlem.github.io/.git/COMMIT_EDITMSG'
15:29:52.884006 run-command.c:626       trace: run_command: 'gpg' '--status-fd=2' '-bsau' 'SECRETKEYID'
error: gpg failed to sign the data
fatal: failed to write commit object

Wenn ich versuche zu rennen 'gpg' '--status-fd=2' '-bsau' 'SECRETKEYID' es hängt nur nach dem sagen BEGIN_SIGNING H8 und macht nichts mehr.

Irgendwelche Ideen, wie man das lösen kann, oder Forschungsmöglichkeiten?

Ich bin darüber gestolpert, als ich auf denselben Fehler gestoßen bin, und ich war bereits auf der neuesten Version von gpg (2.2.17). Bei mir waren es mehrere Dinge.

  1. Vor dem Begehen musste ich laufen $ export GPG_TTY=$(tty). Dies führte dann dazu, dass die Eingabeaufforderung für die Passphrase angezeigt wurde.
  2. Wenn ich eine Passphrase mit einem Sonderzeichen verwendete, funktionierte sie nicht (die Eingabeaufforderung besagte, dass ich beim Versuch, sie zu verwenden, eine schlechte Passphrase hatte), also musste ich nur alphanumerische Zeichen verwenden.

Und wenn Sie dies tun, um verifizierte Commits auf GitHub zu erhalten, stellen Sie sicher, dass der Name und die E-Mail-Adresse mit denen übereinstimmen, die Sie auf GitHub haben.

  • Beim Laufen passiert mir nichts export GPG_TTY=$(tty)

    – Wiedereinsetzung von Monica3167040

    21. Dezember 2019 um 0:13 Uhr

  • Dasselbe gilt für mich, der Befehl tut nichts. Haben Sie dafür jemals eine Lösung [email protected]

    – JoeyMousepad

    3. Mai um 16:43 Uhr

  • musste ich auch hinzufügen gpg-connect-agent updatestartuptty /bye >/dev/null zusammen mit export GPG_TTY=$(tty) zu meinem .bashrc. Dadurch wurde die GPG-Passwortabfrage (gpg --status-fd=2 -bsau <id>) korrekt erscheinen. Habe die Lösung im Arch Wiki gefunden: wiki.archlinux.org/title/…

    – Andreas Nasmann

    16. September um 5:58 Uhr


Wenn Sie gpg mit Homebrew installiert haben und auch GPGTools verwenden, müssen Sie gpg von Homebrew deinstallieren.

# Uninstall gpg in homebrew so that it uses the gpg in GPGTools instead
$ brew uninstall gpg

# You might need to do some extra cleanup afterward as well:
$ rm -r /opt/homebrew/etc/gnupg

# Restart the gpg-agent so that it uses the correct one:
$ gpgconf --kill gpg-agent

Danach konnte Git meine Commits wieder signieren.

  • Das war es für mich! Nach einem Neustart des Computers entschied sich mein Computer, das gpg von Homebrew zu verwenden.

    – nSchuhe

    26. September um 15:44 Uhr

Ich habe GPG auf meinem Mac mit aktualisiert brew upgrade gpg nachdem ich sah, dass mein GPG die Version 2.2.5 hatte und die neueste Version 2.2.10 war.

Dies hat das Problem vorerst behoben. Allerdings habe ich immer noch keine Ahnung, was die Ursache dieses Problems war.

Ich bin auf das gleiche Problem gestoßen. In der GnuPG-Konfigurationsdatei ~/.gnupg/gpg-agent.confdas pinentry-program Weg zeigte auf pinentry-macwas fehlte.

Betrieb brew install pinentry-mac behoben.

1429180cookie-checkDie Git-GPG-Signierung schlägt ohne eine klare Meldung fehl

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy