Como posso reiniciar o gpg-agent?


67

Algumas mudanças na configuração do GnuPG exigem uma gpg-agentreinicialização / reinicialização, mas ... Como posso fazer isso? Eu tentei gpg-agent restart, service gpg-agent restartmas não tive sucesso.

Respostas:


99

Com o GPG atual (2.1+), para interromper gpg-agent você pode usar gpgconf --kill, assim:

gpgconf --kill gpg-agent

Você não precisa reiniciar manualmente. O GPG irá reiniciá-lo quando necessário.


6
Há casos em que você deseja iniciar o agente manualmente, por exemplo, quando você o usa com o suporte ssh ativado. O agente NÃO será iniciado automaticamente quando você tentar um login ssh.
hasufell

1
Se você excluir o ~/.gnupgdiretório, precisará reiniciar o agente gpg manualmente.
Christopher Martin

21

Minha maneira preferida é com gpg-connect-agent reloadagent /bye. Veja gpg-connect-agent help /byepara uma lista completa de comandos.


10

gpg-agentnão é um serviço de todo o sistema, mas iniciado uma vez por usuário (portanto, não é gerenciado por service). Embora algumas vezes seja invocado pelos dotfiles do usuário ou pelo menos no Debian e derivados também quando o X11 é iniciado (e gpg-agentinstalado) no /etc/X11/Xsession.d/90gpg-agent(para garantir que um comum gpg-agentseja usado por todas as chamadas do GnuPG, não importa se é de um terminal ou de uma interface gráfica do usuário); também é iniciado automaticamente pelo GnuPG quando necessário. De man gpg-agent:

O agente é iniciado automaticamente sob demanda pelo gpg, gpgsm, gpgconf ou gpg-connect-agent. Portanto, não há razão para iniciá-lo manualmente. Caso você queira usar o Secure Shell Agent incluído, você pode iniciar o agente usando:

gpg-connect-agent /bye

Normalmente, um simples killall gpg-agent(de um shell não raiz) deve ser bom para terminar gpg-agent. Você provavelmente observará um pequeno atraso ao usar o GnuPG na próxima vez, pois gpg-agenté iniciado novamente.


2
Isso muda no GPG 2.1.x e o processo é tratado através do dirmngr. Os comandos a serem executados são dirmngr --shutdownseguidos dirmngr --daemone, às vezes, opções adicionais (eu também incluo um homedir GPG específico e o --use-torsinalizador).
Ben

1

Na minha experiência, existem alguns cenários em que o gpg falhará ao iniciar um novo agente (importando uma nova chave?).

Mate o agente antigo da seguinte maneira:

GNUPGHOME="${GNUPGHOME:-$HOME/.gnupg}" gpgconf --kill gpg-agent

e inicie o novo:

gpg-agent --homedir "${GNUPGHOME:-$HOME/.gnupg}" --daemon

Definir explicitamente o --homedir ao iniciar garante que a sua lista ps fique clara quando você tiver mais de um homedir; e é análogo ao que o gpg faz quando o inicia.

Definir o GNUPGHOME ao parar não é necessário, mas isso pode deixar você ou o revisor de código mais confortáveis.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.