私のgpg.confファイルには次の行がありますuse-agent
。
これはデーモンプロセスであるgpg-agentを意味することを知っています。マニュアルページには、「gpg-agentは、プロトコルに関係なく秘密(秘密)キーを管理するために使用されるデーモンです。gpgとgpgsmはもちろん、他の多くのユーティリティのバックエンドとして機能します」と記載されています。
gpgの文脈でこれが何を意味するのかを説明できる人はいますか? gpg-agentのポイントは何ですか?
現在、GPG 1.4を使用しています。
- エージェントが実行されているかどうかはどうすればわかりますか?実際、gpg-agentがデフォルトのGPG 1.4パッケージと共にインストールされているかどうかはわかりません。
- 実行されていない場合はどうやって始めますか?
- 実行している場合はどうやって停止しますか?
答え1
Gpg-agentはバックグラウンドで実行されるプログラムです(悪魔)GPGキーをメモリに保存します。 GPGプロセスにキーが必要な場合は、以下を介して実行されているgpg-agentプログラムに接続します。ソケットそして鍵を求めてください。エージェントプロセスにキーがある場合は、それをgpgに提供します。それ以外の場合は、キーリングから暗号化キーをロードしようとし、キーのパスワードを求めるメッセージを表示します。エージェントは復号化キーを取得し、それをgpgプロセスに渡します。 GPGキーに加えて、Gpg-agentはssh-agent
SSHに付属のプログラムと同様にSSHキーを保存してSSHプロセスに提供できます。
キーエージェントを使用するポイントは、キーを使用するたびにパスワードを入力する必要がないことです。エージェントは、一度から次回までキーをメモリに保持します。 GPG自体は、操作が完了するとプロセスが終了するため、これを行うことはできません。
キーエージェントが実行できるもう1つの作業は、リモートシステムで実行されているGPGがローカルエージェントからキーを取得できるようにすることです(ローカルファイルからキーをロードし、パスワードの入力を求めることができます)。 Gpg-agentはまだこれを実行できません。計画された機能。 SSHには長い間プロキシ転送機能がありました。 (これがgpg-agentをSSHキーとして使用しない理由です。)
GPG_AGENT_INFO
GPG 1.xまたは2.0.xには変数が設定されているため、エージェントが実行されていることがわかります。この変数には、エージェントと通信するためのソケットの場所とエージェントのプロセスIDが含まれています。 GPG 2.1は常にプロキシソケットを配置します~/.gnupg
。プロキシプロセスが実行されていない場合、GPG 2.xは常にプロセスを開始します。
エージェントを起動するには実行しますgpg-agent
。エージェントプロセスをセッションの一部として維持するには、セッションマネージャへの呼び出しを上書きできますgpg-agent my-session-manager
。一部の展開では、この機能を自動的に設定します。 GPGは自動的にエージェントを起動し、GPG 2.1は追加の環境変数なしで実行中のエージェントを探します。したがって、以前のバージョンのGPGを使用するか、エージェントを使用してSSHなどの他の種類のキーを保存しない限り、この方法で起動する必要はありません。 。
エージェントを送信してください。注文するそしてgpg-connect-agent
シェルコマンド。送るkill
注文するエージェントプロセスを終了します(またはシグナルを送信します)。
Gpg-agentはGPG自体に付属しています。一部のディストリビューションでは別々にパッケージ化されます。