SSH、tmux、およびGnuPGエージェントのベストプラクティス

SSH、tmux、およびGnuPGエージェントのベストプラクティス

私の暗号化ソフトウェアを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ファイルを見つけます。今私の暗号化システムは、両方のタイプのプロキシを使用しても非常にスムーズに動作します。

関連情報