Gpg-agent é um programa que roda em segundo plano (um daemon ) e armazena chaves secretas de GPG em memória. Quando um processo GPG precisa da chave, ele entra em contato com o programa gpg-agent em execução por meio de um soquete e solicita a chave. Se o processo do agente tiver a chave, ele será fornecido para gpg. Se isso não acontecer, ele tentará carregar a chave criptografada do seu chaveiro e solicitará a senha da chave. Uma vez que o agente tenha obtido a chave descriptografada, ele passa para o processo gpg. Além das chaves GPG, o Gpg-agent pode, da mesma forma, armazenar chaves SSH e fornecê-las aos processos SSH, como o programa ssh-agent
que vem com o SSH.
O principal ponto de usar um agente de chave é para que você não precise digitar sua frase-senha toda vez que usar a chave. O agente mantém a chave na memória de uma vez para a próxima. O próprio GPG não pode fazer isso porque o processo termina assim que o trabalho é feito.
Outra coisa que um agente de chave pode fazer é permitir que o GPG em execução em uma máquina remota obtenha chaves no agente local (o que pode carregá-las de um arquivo local e solicitar sua frase secreta). O Gpg-agent não pode fazer isso ainda, é um recurso planejado . O SSH teve o encaminhamento do agente por um tempo muito longo. (Esta é uma razão para não usar o gpg-agent para chaves SSH.)
O GPG 1.x ou 2.0.x sabe que o agente está em execução porque a variável GPG_AGENT_INFO
está configurada. Essa variável contém o local do soquete para se comunicar com o agente, bem como o ID do processo do agente. O GPG 2.1 sempre coloca o soquete do agente em ~/.gnupg
. O GPG 2.x sempre inicia um processo de agente, se não estiver em execução.
Você pode iniciar o agente simplesmente executando gpg-agent
. Se você quiser manter um processo de agente como parte de sua sessão, poderá substituir a chamada de seu gerenciador de sessões por gpg-agent my-session-manager
; algumas distribuições configuram isso automaticamente. O GPG iniciará automaticamente o agente, e o GPG 2.1 também encontrará um agente em execução sem precisar de uma variável de ambiente, portanto, não será necessário iniciá-lo dessa maneira, a menos que você use uma versão mais antiga do GPG ou use o agente para armazenar outros tipos de chaves como SSH.
Você pode enviar ao agente comandos com a gpg-connect-agent
comando shell. Envie o kill
command para eliminar o processo do agente (ou enviar é um sinal).
O Gpg-agent é fornecido com o próprio GPG. Algumas distribuições o embalam separadamente.