Estoy buscando almacenar en caché las frases de contraseña para usarlas en una máquina desatendida. Como hacer esto plantea algún riesgo, preferiría elegir qué frases de contraseña se almacenan en caché y evitar establecer ambas default-cache-ttl
y max-cache-ttl
valores desagradablemente altos, así como evitar tener que borrar gpg-agent
todo el caché periódicamente, por lo tanto, estoy buscando una solución gpg-preset-passphrase
. Parte de la información que encontré al solucionar problemas se refiere a versiones anteriores de GnuPG, por lo que no estoy seguro de haber explicado suficientemente todas las diferencias.
Primero, según lo prescrito man 1 gpg-agent
, tengo export GPG_TTY=$(tty)
en mi .bashrc.
Ahora suponga que corro eval $(gpg-agent --daemon --allow-preset-passphrase --default-cache-ttl 1 --max-cache-ttl 31536000)
para iniciar gpg-agent, notando que gpg-preset-passphrase todavía cumple con --max-cache-ttl (predeterminado 2 horas).
Luego obtengo el keygrip $KEYGRIP
de la subclave secreta deseada con gpg --with-keygrip -K
.
Con eso lo intento /path/to/gpg-preset-passphrase -c $KEYGRIP
. Al presionar regresar, esto imprime:
gpg-preset-passphrase: caching passphrase failed: Not implemented
Intentar de nuevo la adición --verbose --debug 6 --log-file /path/to/gpg-agent.log
a gpg-agent
, mi registro se anexa con
gpg-agent[4206] listening on socket /run/user/1000/gnupg/S.gpg-agent
gpg-agent[4207] gpg-agent (GnuPG) 2.1.15 started
gpg-agent[4207] handler 0x7f86ef783700 for fd 5 started
gpg-agent[4207] command PRESET_PASSPHRASE failed: Not implemented
gpg-agent[4207] handler 0x7f86ef783700 for fd 5 terminated
No estoy seguro de dónde proceder, aparte de profundizar en la fuente, por lo que me pregunto si alguien puede corregir primero los pasos que estoy tomando.
gpg-preset-passphrase
, mi primer plomo concreto sobre eso es de esta lista de correo lists.gnupg.org/pipermail/gnupg-users/2010-January/037876.htmlRespuestas:
También tengo este problema y lo he resuelto agregando configuración a gpg-agent, puede encontrarlo aquí:
/programming/49491679/how-to-enter-gnupg-agent-key-passhprase-from-cli
fuente
Parece que desea enviar la frase de contraseña a
gpg-preset-passphrase
más de stdin, sin hacer eco (para evitar exponerla en la lista de procesos):Si te importa la portabilidad fuera de bash:
Esta respuesta sobre la sintaxis "Here Documents" (EOF) fue invaluable para mí: https://unix.stackexchange.com/a/88492
También necesita
allow-preset-passphrase
en su~/.gnupg/gpg-agent.conf
como lo menciona holms.Si está buscando hacer esto con cifrado simétrico (dado que ya perdí la cordura por esto, tal vez no tenga que hacerlo), vea mi respuesta aquí para encontrar el keygrip / cacheid correcto para preestablecer la frase de contraseña en gpg- agente: https://superuser.com/a/1485486/1093343
fuente