Ich mag es, meine Git-Commits mit meinem PGP-Schlüssel zu signieren, daher war ich ziemlich alarmiert, als ich zu ging, git commit -S
aber anstatt nach meiner PGP-Schlüssel-Passphrase zu fragen, fing Git gerade an zu hängen. Ich habe seit einigen Monaten keine Änderungen an meinem GPG-Setup vorgenommen und seitdem viele Commits ohne Probleme durchgeführt. Wenn ich versuche, meine privaten Schlüssel mit anzuzeigen gpg -K
, bleibt gpg hängen. Wenn ich gpg -k
jedoch meine öffentlichen Schlüssel anzeigen möchte, wird die Liste wie gewohnt zurückgegeben. Hoffentlich hat jemand eine Vorstellung davon, was dieses Problem verursacht und wie es behoben werden kann.
14
gpg-agent
ähnliches Setup in der .bashrc (usw.) des Remote-Systems und sind so konfiguriert, dass es auf dem X-Display der Remote oder ähnlichem angezeigt wird? Ich habe in der Vergangenheit ähnliche Probleme hat (zB ssh-ing von einem Terminal auf meinem mythtv Box zu meinem Desktop - Rechner zu laufen etwas gpg erfordern. auch ähnliche Probleme mit hattessh-agent
), und i Brute-Force „fest“ mitexport GPG_TTY=$(tty)
in der .bashrc, um sicherzustellen, dass die Eingabeaufforderung immer auf dem aktuellen tty ist. Ich kann GUI Passwd-Eingabeaufforderungen sowieso nicht ausstehen.gpg-agent
Manpage bemerkt, dass das Festlegen von GPG_TTY wie oben nicht etwas ist, das ich gehackt habe, um zu arbeiten, es ist erforderlich. Auf der Manpage steht, dass Sie es immer wie ich in Ihrem .bashrc einstellen sollten, und es heißt auchIt is important that this environment variable always reflects the output of the tty command.
- das muss der Ort gewesen sein, von dem ich es bekommen habe. Eine andere Sache, auf die Sie achten müssen, ist das von gpg-agent verwendete Pinentry-Programm. Ich habe meine eingestellt (in~/.gnupg/gpg-agent.conf
) auf/usr/bin/pinentry-curses
Antworten:
Ich bin genau auf dieses Problem gestoßen (OSX Sierra 10.12.6, gpg / GnuPG 2.2.5).
Befehle, die hängen würden:
Meine Lösung war die gleiche wie die oben von John erwähnte (dh gpg-agent töten), da die meisten anderen Methoden zum How-Can-i-Restart-gpg-Agent ebenfalls hängen bleiben würden.
Dann setze ich zum Signieren von Git-Commits das tty env wie oben von cas erwähnt und auch bei gpg-failed-to-sign-commit-object .
quelle
gpg-agent
scheint der einzige Weg zu sein, um es wieder zum Laufen zu bringen.