Puis-je saisir mon mot de passe gpg une seule fois et déverrouiller toutes mes sous-clés (signature, déchiffrement, authentification)?
Pour le moment, je dois saisir mon mot de passe gpg trois fois (pour la signature, pour le déchiffrement, pour l'authentification). C'est gênant.
J'ai essayé de trouver un script 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"
Mais malheureusement, de cette façon, les mots de passe gnupg-agent ne mettent pas en cache le mot de passe. Cela peut-il être corrigé?
Informations système:
- Lorsque je n'utilise pas ce script shell, je n'ai aucun problème avec gnupg-agent. Lorsque je signe / déchiffre manuellement un fichier dans le shell, Pinentry demande le mot de passe deux fois, puis le met en cache jusqu'au redémarrage.
- Utiliser Debian Wheezy.
- version 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)
J'ai demandé sur la liste de diffusion gnupg-users il y a un moment, mais aucune réponse.
Peut - être que cette réponse fonctionnerait? Peut gpg-connect-agent
- être est-il nécessaire?
exec 3<<<"$passphrase"
c'était nouveau même pour moi ... Et je viens de jeter une prime de 250 représentants à la réponse que vous citez.