gpg con gpg-agent nunca pide una frase de contraseña

17

Sin gpg-agent ejecutándose, puedo ingresar mi frase de contraseña para firmar cosas:

$ echo 123 | gpg -s

You need a passphrase to unlock the secret key for
user: "Mr. Ops <[email protected]>"
2048-bit RSA key, ID 20F31903, created 2014-03-13

gpg: gpg-agent is not available in this session
Enter passphrase:

Funciona bien. Pero no quiero escribir mi frase de contraseña todo el tiempo, así que ejecuto gpg-agent:

$  eval $(gpg-agent --daemon)

Ahora esperaría que se me solicite mi frase de contraseña al menos una vez, pero nunca lo hago, y todas las operaciones que usan gpg fallan.

$ echo 123 | gpg -s

You need a passphrase to unlock the secret key for
user: "Mr. Ops <[email protected]>"
2048-bit RSA key, ID 20F31903, created 2014-03-13

gpg: cancelled by user
gpg: no default secret key: bad passphrase
gpg: signing failed: bad passphrase

¿Cómo guardo mi frase de contraseña almacenada en el agente? Una vez que lo tengo allí, ¿cómo lo mantengo allí durante las sesiones de inicio de sesión? (Idealmente, nunca quiero que me vuelvan a preguntar.) Esto está en Ubuntu 12.04.4 con los paquetes estándar apt-get gpg, en caso de que sea importante.

jsd
fuente

Respuestas:

18

Esto sucede cuando gpg-agentno sabe qué TTY solicitar, lo que está sucediendo aquí porque está redirigiendo stdin.

Puede poner export GPG_TTY=$(tty)su ~/.bashrcpara configurar el TTY para cada shell de inicio de sesión.

La documentación sobregpg-agent tiene más detalles.

leedm777
fuente
7

Un poco tarde, pero en este momento me enfrento a este problema cuando inicio sesión remotamente en mi PC (Linux-Centos) e intento descifrar un archivo PGP. Intenté la sugerencia de Dave, sin suerte, buscando en Google encontré esto

gpg: cancelado por el usuario

Esta parte resuelve mi problema:

Finalmente, después de permitir que otros r + w en tty parezcan resolver este problema

[root @ host ~] # chmod o + rw $ (tty)

Espero que esto pueda ayudar a alguien más.

BR.

Vielinko
fuente
Este funcionaría. Simplemente haga la parte chmod tty antes de hacerle su al usuario
user169015
Esto es inseguro: debe asegurarse de que el tty sea propiedad del usuario correcto, o tal vez use un grupo con los usuarios requeridos y los permisos de grupo :)
Legooolas