GPG se bloquea cuando se accede a claves privadas


16

Me gusta firmar mis confirmaciones de git con mi clave PGP, así que estaba bastante alarmado cuando fui, git commit -Spero en lugar de solicitar mi frase de contraseña de clave PGP, git comenzó a colgar. No he realizado ningún cambio en mi configuración de GPG en varios meses y he realizado muchos compromisos desde entonces sin ningún problema. Además, cuando intento ver mis claves privadas con gpg -K, se bloquea gpg. Sin embargo, cuando corro gpg -kpara ver mis claves públicas, devuelve la lista como de costumbre. Esperemos que alguien tenga una idea de qué está causando este problema y cómo solucionarlo.


estás haciendo esto por ssh? en caso afirmativo, ¿tiene gpg-agentuna configuración similar en el .bashrc (etc.) del sistema remoto y está configurado para que aparezca en la pantalla X del control remoto o similar? He tenido problemas similares en el pasado (p. ej., enviando desde un terminal en mi caja de mito a mi máquina de escritorio para ejecutar algo que requiere gpg. También tuve problemas similares con ssh-agent), y la fuerza bruta lo "solucionó" export GPG_TTY=$(tty)en el .bashrc, para asegurarse de que la solicitud siempre esté en el tty actual. No puedo soportar los mensajes de GUI passwd de todos modos.
— cas

1
No, no lo estoy haciendo por SSH. Lo extraño es que descubrí que si mato a gpg-agent, gpg funciona de nuevo. Estoy tratando de averiguar por qué y hacer una solución a largo plazo.
— John Leuenhagen

Acabo de notar en la gpg-agentpágina del manual que configurar GPG_TTY como se describe arriba no es algo que pirateé para trabajar, es obligatorio. La página de manual dice que siempre debe configurarlo en su .bashrc como lo hice yo, y también dice It is important that this environment variable always reflects the output of the tty command.: debe haber sido de donde lo obtuve. Otra cosa que debe tener cuidado es el programa de pinentry utilizado por gpg-agent. Tengo conjunto de minas (en ~/.gnupg/gpg-agent.conf) a/usr/bin/pinentry-curses
— cas

Respuestas:


21

Me encontré con este problema exacto (OSX Sierra 10.12.6, gpg / GnuPG 2.2.5)

Comandos que colgarían:

gpg -K # --list-secret-keys
gpg -d # --decrypt
gpg --edit-key
gpgconf --kill gpg-agent

Mi solución fue la misma que mencionó John anteriormente (es decir, kill gpg-agent), ya que la mayoría de los otros métodos de how-can-i-restart-gpg-agent también se bloquearían.

# Solution    
pkill -9 gpg-agent

Luego, para firmar git commits, configuré el tty env como se mencionó anteriormente en cas y también en gpg-failure-to-sign-commit-object .

export GPG_TTY=$(tty)

Entonces, ¿tienes que volver a matar gpg cada vez que reinicias? Eso es lo que he tenido que hacer durante mucho tiempo. Espero que encontremos una manera de arreglarlo para siempre.
— John Leuenhagen

Acabo de empezar a tener el problema yo mismo. Matar gpg-agentparece ser la única forma de hacerlo funcionar nuevamente.
— Alexis Tyler
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.