Ich habe gerade herausgefunden, wie man heute auf meinem Mac gpg-agent
verwenden kann. Ich wurde blockiert, nachdem ich den gleichen Fehler wie Sie traf:
gpg: problem with the agent - disabling agent use
tldr; Wie ich es reparierte
Für meine Einrichtung konnte ich dies beheben, indem ich pinentry-mac
installiere und zeige, um es zu verwenden, so eine GUI-Eingabeaufforderung wie erforderlich aufspringend.
1. install pinentry-mac
% brew install pinentry-mac
2. update gpg-agent conf
# manually change ~/.gnupg/gpg-agent.conf's pinentry-program to /usr/local/bin/pinentry-mac
3. update shell's view of PATH contents
% hash -r
4. restart gpg-agent
# however you normally do it (see below for how I run it manually)
Details zum Debuggen
ich gedebuggt dies durch die gpg-agent
manuell neu starten. Ich zum ersten Mal die configs in ~/.gnupg/gpg-agent.conf
kommentiert, dann lief ich diesen Befehl, um den GPG-Agenten mit --verbose
neu zu starten:
% killall gpg-agent && \
eval $(gpg-agent --pinentry-program /usr/local/bin/pinentry --default-cache-ttl 60 --daemon --verbose)
Dann habe ich einen Test Befehl lief und sah den Fehler, den wir oben beide aufgeführt haben, sowie ein neues Geschäft:
# update the MY_GPG_KEY_ID as appropriate
% echo hi | gpg -e -r $(MY_GPG_KEY_ID) | gpg -d --use-agent
...
gpg-agent[60604]: command get_passphrase failed: Device not configured
gpg: problem with the agent - disabling agent use
...
ich schließlich realisiert (nach dem Lesen this article und this GPG page), dass GPG_TTY
wurde nicht durch die Schritte festgelegt wurde ich folgende für gpg-agent
starten. Also einmal stellte ich diese Variable alles „gearbeitet“:
% killall gpg-agent && \
eval $(gpg-agent --pinentry-program /usr/local/bin/pinentry --default-cache-ttl 60 --daemon --verbose)
% export GPG_TTY=`tty`
# Now the below command succeeds
% echo hi | gpg -e -r $(MY_GPG_KEY_ID) | gpg -d --use-agent
In der Mitte dieser Übung war ich eine Menge verschiedener Optionen versuchen, und entdecken, dass der pinentry-mac
GUI Souffleur „nur gearbeitet“.
Vermeidung GUI Passwort Souffleur
Wenn Sie tauchen nicht ein GUI Souffleur wollen, dann denke ich, es würde ausreichen, um sicherzustellen, dass das folgende env Variablen in jedem Endgerät eingestellt werden:
GPG_TTY
- z. B. können Sie diese Zeile in Ihre einfügen.bashrc:
export GPG_TTY=$(tty)
GPG_AGENT_INFO
Ich vergaß zu erwähnen, dass ich Ubuntu verwenden. : sweat_smile: Lass mich sehen, ob ich deine Forschung auf mein Problem anwenden kann. –
Die Lösung für mein Problem war anscheinend einfacher. Laut [diesem Handbuch] (https://www.gnupg.org/documentation/manuals/gnupg/Invoking-GPG_002dAGENT.html) muss ich GPG angeben, welche TTY ich verwende, sobald das erledigt ist, hat alles super geklappt . Wenn Sie Ihre Antwort ändern, um dies zu reflektieren, kann ich Ihre Antwort akzeptieren. –
@ cj-duncan Ich legte die Details über die Einstellung 'GPT_TTY' in Ihrem' .bashrc' (Ich habe keine Ahnung, wie Sie "@" mit dem Leerzeichen in Ihrem Benutzernamen :)) –