gpg iniciando o gpg-agent on demand?

13

A página do manual de gpg-agent states:

   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)

Por um lado, isso me diz que "não há motivo para iniciá-lo manualmente" e, por outro lado, informa como iniciá-lo manualmente. - Eu entendi mal alguma coisa aqui?

No meu sistema, parece que tenho que iniciá-lo manualmente. Caso contrário, por exemplo, gpg-connect-agent reclama: can't connect to the agent: IPC connect call failed . - Preciso configurar alguma coisa para fazer o gpg-connect-agent iniciar o agente conforme indicado na man page?

Além disso, a página do manual de gpg-connect-agent diz:

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

No entanto, gpg-connect-agent --help não lista essa opção e o comando também reclama se eu tentar usá-la.

Parece que a página man descreve um comando diferente, ou eu perdi alguma coisa importante?

Meu sistema é um Arch Linux atual. (Mesma situação em outra caixa debian).

Detalhes solicitados:

$ 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
    
por michas 27.12.2013 / 13:55

1 resposta

5

Isso é uma má palavra na página man. Eu acho que se entende como: "Você não é obrigado a iniciar o gpg-agent manualmente". Isso faz sentido porque o GnuPG 2.x requer gpg-agent , enquanto é opcional em 1.x

Portanto: "Portanto, não há razão para iniciá-lo manualmente" "... para obter as ferramentas em execução".

Mas: Se você quiser o recurso de armazenamento em cache, gpg-agent deve ser executado como um daemon e, portanto, ser iniciado antes das ferramentas, ou manualmente de ~/.xsession , porque as ferramentas procuram a variável de ambiente GPG_AGENT_INFO para encontrar o (direita) executando gpg-agent . Se as ferramentas iniciarem gpg-agent , então gpg-agent sairá quando a ferramenta sair.

gpg-connect-agent /bye pode ser um bug real na página man. AFAIK é usado para testar se gpg-agent está em execução, mas não para iniciá-lo. Ele não pode nem funcionar dessa maneira, já que você precisa, obrigatoriamente, do shell (mais preciso: o processo pai para as ferramentas a serem iniciadas) para definir GPG_AGENT_INFO .

    
por 28.12.2013 / 16:05