gpg
não procura pelo soquete (isso é diferente com a nova versão 2.1), mas pela variável de ambiente GPG_AGENT_INFO
. Isso não está definido no log in. Esse é o problema. Obviamente, você tem a opção use-standard-socket
in gpg-agent.conf
para que o nome do soquete seja sempre o mesmo.
Você deve definir a variável em um script de login para executar um script simples que verifica se gpg-agent
está sendo executado:
export GPG_AGENT_INFO=/path/to/your/HOME/.gnupg/S.gpg-agent:42:1
gpg-connect-agent /bye &>/dev/null || gpg-agent --daemon &>/dev/null
Essa é a parte para usar gpg
. Para o SSH, você também precisa de SSH_AUTH_SOCK
. A maneira mais fácil de obter as duas variáveis é adicionar a linha
write-env-file "${HOME}/.gpg-agent-info
para o arquivo de configuração gpg-agent.conf
e para executar este script após o acima:
. "${HOME}/.gpg-agent-info"
export SSH_AUTH_SOCK
Isso é explicado na página gpg-agent
man.