私の暗号化ソフトウェアをGnuPGに統合しようとしましたが、混乱した問題に固執しました。
私の主な組織はヘッドレスサーバーで、tmuxでのみ作業しています。 Xセッションがないので、pinentry-cursesを使用するようにgpg-agentを設定しました。次のスクリプトを使用して、ログイン時にssh-agent偽装を介してgpg-agentを呼び出すように設定しました。
if pgrep -u "${USER}" gpg-agent >/dev/null 2>&1; then
eval `cat $gnupginf`
eval `cut -d= -f1 $gnupginf | xargs echo export`
else
eval `gpg-agent -s --enable-ssh-support --daemon`
fi
gpg-agentにsshキーを追加しましたが、別のsshセッションを試みるとコマンドが中断されます。
gpg-agentを終了して新しいログインシェルを作成すると、エージェントが正常に動作することがわかりました(pinentry-cursesを呼び出してssh-agentのように動作します)。
ただし、別のログインシェルを作成して(たとえば、別のtmuxウィンドウを開く)、sshを試みるとコマンドが中断され、元のエージェントを起動したログインシェルの内容の上にpinentry-cursesウィンドウが印刷されます。
さらに、元のエージェントを起動したシェルを閉じると、pinentry-cursesが呼び出され、CPUを消費する無限ループが発生します。 (既知のバグについては、以下を参照してください。http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=559936.)
デフォルトでは、GnuPGエージェントがssh-agentのようにスムーズに動作するように設定を変更する方法を知りたいです。助けてくれてありがとう!
答え1
これは非常に簡単であることが判明した。そのスクリプトを使用する代わりに、以前のキーチェーン起動スクリプトから "--agents"オプションを削除しました(ガイドここ)。
これにより、キーチェーンプログラムはssh-agentファイルとgpg-agentファイルを見つけます。今私の暗号化システムは、両方のタイプのプロキシを使用しても非常にスムーズに動作します。