今日は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
でコンフィグをコメントアウトし、私は--verbose
でのgpg-agentを再起動するには、次のコマンドを実行しました:
% killall gpg-agent && \
eval $(gpg-agent --pinentry-program /usr/local/bin/pinentry --default-cache-ttl 60 --daemon --verbose)
それから私は、テストコマンドを実行したと我々は両方の上記リストアップしましたエラーを見ただけでなく、新しい1:
# 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)によると、私はどのTTYを使用しているのかをGPGに指定しなければなりません。 。 これを反映するように回答を変更した場合、私はあなたの答えを受け入れることができます。 –
@ cj-duncanあなたの '.bashrc'に' GPT_TTY'を設定する方法の詳細を書いています。(私はあなたのユーザ名にスペースを "@"つける方法はありません:) –