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


12

暗号化ソフトウェアを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

すでにsshキーをgpg-agentに追加しましたが、別の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と同じようにシームレスに動作するように、セットアップの変更点を知りたいと思います。助けてくれてありがとう!

回答:


4

これは非常に簡単だったことがわかりました。そのスクリプトを使用する代わりに、古いキーチェーン起動スクリプトから「--agents」オプションを削除しただけです(こちらのガイド)。

これにより、キーチェーンプログラムはssh-agentファイルとgpg-agentファイルの両方を検索します。現在、私の暗号化システムは、両方のタイプのエージェントに依存していても、非常にシームレスに機能します。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.