Gpg şifremi yalnızca bir kez girip tüm alt anahtarlarımın kilidini açabilir miyim (imzalama, şifre çözme, kimlik doğrulama)?
Şu anda, gpg şifremi üç kez girmem gerekiyor (imzalama, şifre çözme, kimlik doğrulama için). Bu elverişsiz.
Bir kabuk senaryosu bulmaya çalıştım.
#!/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"
Ancak ne yazık ki, bu şekilde gnupg-agent parolaları parolayı önbelleğe almaz. Bu düzeltilebilir mi?
Sistem bilgisi:
- Bu kabuk betiğini kullanmadığımda, gnupg-agent ile hiçbir sorunum yok. Kabuktaki bir dosyayı el ile imzaladığımda / şifresini çözdüğümde, pinentry iki kez parola ister, sonra yeniden başlatılana kadar önbelleğe alır.
- Debian Wheezy'i kullanma.
- gpg sürümü:
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)
Ben ettik sorulan bir süre önce mesaj listesiyle gnupg kullanıcılar, ancak yanıt olmadığında.
Belki de bu cevap işe yarayacaktır? Belki gpg-connect-agent
de gereklidir?
exec 3<<<"$passphrase"
bile yeniydi.