¿Puedo ingresar mi contraseña gpg solo una vez y desbloquear todas mis claves secundarias (firma, descifrado, autenticación)?
Por el momento, necesito ingresar mi contraseña gpg tres veces (para firmar, para descifrar, para autenticación). Esto es inconveniente.
Traté de crear un script de shell.
#!/bin/bash
set -x
set -e
set +o history
signing_key=77BB3C48
encryption_key=CE998547
tempfile="$(mktemp)"
echo "test" > testfile
unset passphrase || exit 1
read -sp 'Enter password. ' passphrase ; echo
exec 3<<<"$passphrase"
gpg2 --no-tty --use-agent --batch --yes --passphrase-fd 3 --sign-with "$signing_key" --clearsign "$tempfile"
gpg2 --no-tty --use-agent --verify "$tempfile.asc"
gpg2 --no-tty --use-agent --yes --armor --recipient "$encryption_key" --encrypt "$tempfile"
exec 3<<<"$passphrase"
gpg2 --no-tty --use-agent --batch --decrypt --passphrase-fd 3 "$tempfile.asc"
Pero desafortunadamente, de esa manera las contraseñas gnupg-agent no almacenan en caché la contraseña. ¿Se puede arreglar esto?
Información del sistema:
- Cuando no uso ese script de shell, no tengo problemas con gnupg-agent. Cuando firmo / descifro manualmente un archivo en shell, pinentry solicita la contraseña dos veces, luego la almacena en caché hasta que se reinicia.
- Usando Debian Wheezy.
- versión gpg:
dpkg -l | grep gnupg
ii gnupg 1.4.12-7+deb7u3 i386 GNU privacy guard - a free PGP replacement
ii gnupg-agent 2.0.22-3 i386 GNU privacy guard - password agent
ii gnupg-curl 1.4.12-7+deb7u3 i386 GNU privacy guard - a free PGP replacement (cURL)
ii gnupg2 2.0.22-3 i386 GNU privacy guard - a free PGP replacement (new v2.x)
He preguntado en la lista de correo de gnupg-users hace un tiempo, pero no hay respuesta.
¿Quizás esta respuesta funcionaría? Tal vez gpg-connect-agent
se requiere?
exec 3<<<"$passphrase"
era nuevo incluso para mí ... Y acabo de ofrecer una recompensa de 250 repeticiones por la respuesta que usted cita.