Gpg-agent é um programa que é executado em segundo plano (um daemon ) e armazena chaves secretas do GPG na memória. Quando um processo GPG precisa da chave, ele entra em contato com o programa gpg-agent em execução através de um soquete e solicita a chave. Se o processo do agente tiver a chave, ela será fornecida ao gpg. Caso contrário, ele tenta carregar a chave criptografada do seu chaveiro e solicita a senha da chave. Depois que o agente obtém a chave descriptografada, ela a passa para o processo gpg. Além das chaves GPG, o Gpg-agent também pode armazenar chaves SSH e fornecê-las aos processos SSH, como o ssh-agent
programa que acompanha o SSH.
O ponto principal do uso de um agente de chave é para que você não precise digitar sua senha sempre que usar sua chave. O agente mantém a chave na memória de uma vez para a outra. O próprio GPG não pode fazer isso porque o processo termina assim que o trabalho é concluído.
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 (que pode carregá-las em um arquivo local e solicitar sua senha). O agente Gpg ainda não pode fazer isso, é um recurso planejado . O SSH tem encaminhamento de agente há muito tempo. (Esse é um motivo 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 GPG_AGENT_INFO
variável está definida. 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 ~/.gnupg
. O GPG 2.x sempre inicia um processo do agente se não estiver em execução.
Você pode iniciar o agente simplesmente executando gpg-agent
. Se você deseja manter um processo do agente como parte da sua sessão, pode substituir a chamada do seu gerenciador de sessões por gpg-agent my-session-manager
; algumas distribuições configuram isso automaticamente. O GPG iniciará o agente automaticamente e o GPG 2.1 encontrará um agente em execução sem precisar de uma variável de ambiente, portanto, não é 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 os comandos do agente com o gpg-connect-agent
comando shell. Envie o kill
comando para interromper o processo do agente (ou envie um sinal).
O agente Gpg é enviado com o próprio GPG. Algumas distribuições o empacotam separadamente.