web-dev-qa-db-ja.com

オンデマンドでgpg-agentを開始するgpg?

gpg-agentのmanページには、

   The agent is usualy started on demand by gpg,  gpgsm,  gpgconf  or
   gpg-connect-agent.   Thus there is no reason to start it manually.
   In case you want to use the included Secure Shell  Agent  you  may
   start the agent using:

     gpg-connect-agent /bye

   The usual way to run the agent is from the ~/.xsession file:

     eval $(gpg-agent --daemon)

これは一方では「手動で開始する理由はない」ことを教えてくれ、他方では手動で開始する方法を教えてくれます。 -ここで何か誤解しましたか?

私のシステムでは、手動で起動する必要があるようです。それ以外の場合、たとえばgpg-connect-agentは不平を言います:can't connect to the agent: IPC connect call failed。 -マニュアルページに記載されているように、gpg-connect-agentがエージェントを起動するように設定する必要がありますか?


また、gpg-connect-agentのmanページには次のように書かれています。

   --agent-program file
          Specify the agent program to be started if none is running.

ただし、gpg-connect-agent --helpにはこのオプションがリストされておらず、使用しようとするとコマンドからも文句が表示されます。

マニュアルページが別のコマンドを説明しているようです、または私は重要な何かを見逃しましたか?


私のシステムは現在のArch Linuxです。 (別のdebianボックスでも同じ状況です。)

要求された詳細:

$ gpg --version
gpg (GnuPG) 2.0.22
libgcrypt 1.5.3
Copyright (C) 2013 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

Home: ~/.gnupg
Supported algorithms:
Pubkey: RSA, ELG, DSA, ?, ?
Cipher: IDEA, 3DES, CAST5, BLOWFISH, AES, AES192, AES256, TWOFISH,
        CAMELLIA128, CAMELLIA192, CAMELLIA256
Hash: MD5, SHA1, RIPEMD160, SHA256, SHA384, SHA512, SHA224
Compression: Uncompressed, Zip, ZLIB, BZIP2
$ gpg-connect-agent --version
gpg-connect-agent (GnuPG) 2.0.22
Copyright (C) 2013 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

Home: ~/.gnupg
$ man gpg-connect-agent |grep -A1 agent-program
       --agent-program file
              Specify the agent program to be started if none is running.
$ gpg-connect-agent --agent-program foo
gpg-connect-agent: invalid option "--agent-program"
$ gpg-connect-agent /bye
gpg-connect-agent: can't connect to the agent: IPC connect call failed
13
michas

これは、manページの不適切な表現です。 「gpg-agentを手動で起動する必要はありません。」 GnuPG 2.xではgpg-agentが必要ですが、1.xではオプションなので、これは理にかなっています

つまり、「手動で起動する理由はありません」「ツールを実行するために」です。

ただし、キャッシュ機能が必要な場合は、gpg-agentをデーモンとして実行し、ツールの前に手動で、または~/.xsessionから起動する必要があります。これは、ツールが環境変数GPG_AGENT_INFOを順番に検索するためです。 (右)実行中のgpg-agentを検索します。ツールがgpg-agentを開始すると、ツールが終了するとgpg-agentも終了します。

gpg-connect-agent /byeは、manページの実際のバグである可能性があります。これは、gpg-agentが実行されているかどうかをテストするために使用されますが、起動するためではありません。 GPG_AGENT_INFOを設定するためにシェル(より正確には、開始するツールの親プロセス)を強制的に必要とするため、この方法でも機能しません。

5
Hauke Laging