¿Cómo puedo reiniciar gpg-agent?

67

Algunos cambios en la configuración de GnuPG exigen gpg-agentreiniciar / reiniciar, pero ... ¿Cómo puedo hacer eso? Lo intenté gpg-agent restart, service gpg-agent restartpero no tuve éxito.

Felipe
fuente

Respuestas:

100

Con GPG actual (2.1+), para detener gpg-agent puede usar gpgconf --kill, de esta manera:

gpgconf --kill gpg-agent

No debería necesitar reiniciarlo manualmente. GPG lo reiniciará cuando sea necesario.

sidehowbarker
fuente
66
Hay casos en los que desea iniciar el agente manualmente, por ejemplo, cuando lo usa con el soporte ssh habilitado. El agente NO se iniciará automáticamente cuando intente un inicio de sesión ssh.
hasufell
1
Si alguna vez elimina el ~/.gnupgdirectorio, deberá reiniciar el agente gpg manualmente.
Christopher Martin
21

Mi forma preferida es con gpg-connect-agent reloadagent /bye. Consulte gpg-connect-agent help /byepara obtener una lista completa de comandos.

ben
fuente
10

gpg-agentno es un servicio de todo el sistema, sino que se inicia una vez por usuario (por lo tanto, no lo administra service). Aunque a veces es invocado por los archivos de puntos del usuario o al menos en Debian y derivados también cuando X11 se inicia (y gpg-agentse instala) en /etc/X11/Xsession.d/90gpg-agent(para asegurarse gpg-agentde que todas las llamadas GnuPG utilicen un común , sin importar si es desde un terminal o aplicaciones GUI); GnuPG también lo inicia automáticamente cuando es necesario. De man gpg-agent:

El agente se inicia automáticamente a pedido mediante gpg, gpgsm, gpgconf o gpg-connect-agent. Por lo tanto, no hay razón para iniciarlo manualmente. En caso de que desee utilizar el agente Secure Shell incluido, puede iniciar el agente utilizando:

gpg-connect-agent /bye

Por lo general, un simple killall gpg-agent(desde un shell no root) debería estar bien para terminar gpg-agent. Es probable que observe un ligero retraso al usar GnuPG la próxima vez, ya que gpg-agentse inicia nuevamente.

Jens Erat
fuente
2
Esto cambia en GPG 2.1.xy el proceso se maneja a través de dirmngr. Los comandos para ejecutar luego son dirmngr --shutdownseguidos por dirmngr --daemony a veces opciones adicionales (también incluyo un GPG homedir específico y la --use-torbandera).
Ben
1

En mi experiencia, hay algunos escenarios en los que gpg no podrá iniciar un nuevo agente de gpg (¿importar una nueva clave?).

Mata al viejo agente así:

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

y luego comience el nuevo:

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

Establecer explícitamente --homedir al iniciar asegura que su listado de ps esté claro cuando tenga más de un homedir; y es análogo a lo que hace gpg cuando lo inicia.

No es necesario configurar GNUPGHOME cuando se detiene, pero puede hacer que usted o el revisor de códigos se sientan más cómodos.

Ben Hyde
fuente