我剛想出如何在我的Mac上使用gpg-agent
。我遇到同樣的錯誤後被封鎖:
gpg: problem with the agent - disabling agent use
tldr;我如何修復它
對於我的設置,我可以通過安裝pinentry-mac
並指向gpg-agent
來解決此問題,從而根據需要彈出GUI提示。調試
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)
細節我通過手動重新啓動gpg-agent
調試這一點。我在~/.gnupg/gpg-agent.conf
第一註釋掉CONFIGS,然後我跑這個命令來重新啓動GPG-劑--verbose
:
% killall gpg-agent && \
eval $(gpg-agent --pinentry-program /usr/local/bin/pinentry --default-cache-ttl 60 --daemon --verbose)
然後我跑的測試命令,看見我們兩個上面列出的錯誤,以及一個新問題:
# 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
...
我最終意識到GPG_TTY
是不通過我下面的用於啓動gpg-agent
步驟設置(讀this article和this GPG page後)。所以一旦我設定變量一切「工作」:
% 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
在這個練習中我嘗試了很多不同的選擇之中,並發現pinentry-mac
GUI提示器「只是工作」。
避免GUI密碼提示器
如果你不希望一個GUI提示器彈出做,那麼我認爲這將足以確保以下ENV變量在每個終端被設置:
GPG_TTY
- 例如,你可以把這條線放到你的。bashrc中:
export GPG_TTY=$(tty)
GPG_AGENT_INFO
我忘了提,我使用Ubuntu。 :sweat_smile:讓我看看我是否可以將您的研究應用於我的問題。 –
我的問題的解決方案顯然更簡單。根據[本手冊](https://www.gnupg.org/documentation/manuals/gnupg/Invoking-GPG_002dAGENT.html),我必須向GPG指定我正在使用的TTY,一旦完成,一切運作良好。 如果您修改您的答案以反映這一點,我可以接受您的答案。 –
@ cj-duncan我在你的'.bashrc'中設置了'GPT_TTY'的詳細信息(我不知道如何用你的用戶名中的空格「@」) –