A página de manual dos gpg-agent
estados:
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á razão para iniciá-lo manualmente" e, por outro lado, me diz como iniciá-lo manualmente. - Eu entendi errado alguma coisa aqui?
No meu sistema, parece que eu definitivamente 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 gpg-connect-agent
iniciar o agente conforme indicado na página de manual?
Também a página do manual 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 esta opção e o comando também reclama se eu tentar usá-la.
Parece que a página de manual 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
fonte
Respostas:
Isso é péssimo na página de manual. Eu acho que deve ser entendido como: "Você não é forçado a iniciar o gpg-agent manualmente." Isso faz sentido porque o GnuPG 2.x requer,
gpg-agent
enquanto é opcional no 1.xPortanto: "Portanto, não há razão para iniciá-lo manualmente" "... para que as ferramentas funcionem".
Mas: se você quiser o recurso de armazenamento em cache,
gpg-agent
execute-o como um daemon e, portanto, inicie-o antes das ferramentas, ou seja, manualmente ou a partir de,~/.xsession
porque as ferramentas procuram a variável de ambienteGPG_AGENT_INFO
para encontrar a execução (correta)gpg-agent
. Se as ferramentas iniciaremgpg-agent
,gpg-agent
elas sairão quando a ferramenta sair.gpg-connect-agent /bye
pode ser um bug real na página de manual. AFAIK é usado para testar segpg-agent
está em execução, mas não para iniciá-lo. Ele não pode funcionar dessa maneira, pois você precisa obrigatoriamente do shell (mais preciso: o processo pai das ferramentas a serem iniciadas) para a configuraçãoGPG_AGENT_INFO
.fonte