Posso digitar minha senha do gpg apenas uma vez e desbloquear todas as minhas subchaves (assinatura, descriptografia, autenticação)?
No momento, preciso digitar minha senha do gpg três vezes (para assinar, descriptografar e autenticação). Isso é inconveniente.
Eu tentei criar um 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"
Mas, infelizmente, dessa maneira as senhas gnupg-agent não armazenam em cache a senha. Isso pode ser corrigido?
Informação do sistema:
- Quando não estou usando esse script de shell, não tenho problemas com o gnupg-agent. Quando assino / decodifico manualmente um arquivo no shell, o pinentry solicita a senha duas vezes e o armazena em cache até a reinicialização.
- Usando o Debian Wheezy.
- versão 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)
Eu perguntei na lista de discussão gnupg-users há um tempo atrás, mas não respondi.
Talvez essa resposta funcione? Talvez gpg-connect-agent
seja necessário?
exec 3<<<"$passphrase"
era novo até para mim ... E joguei uma recompensa de 250 representantes na resposta que você citar.