Чи можу я ввести свій gpg-пароль лише один раз і розблокувати всі підключі (підписання, розшифрування, автентифікацію)?
На даний момент мені потрібно ввести свій gpg пароль тричі (для підписання, для розшифровки, для автентифікації). Це незручно.
Я спробував придумати сценарій оболонки.
#!/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"
Але, на жаль, таким чином паролі gnupg-agent не кешують пароль. Це можна виправити?
Інформація про систему:
- Коли я не використовую цей скрипт оболонки, у мене немає проблем з gnupg-агентом. Коли я вручну підписую / розшифровую файл у оболонці, додаток запитує пароль двічі, а потім кешує його до перезавантаження.
- Використання Debian Wheezy.
- версія 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)
Я запитав у списку розсилки користувачів gnupg деякий час тому, але відповіді не було.
Можливо, ця відповідь спрацювала б? Можливо, gpg-connect-agent
це потрібно?
exec 3<<<"$passphrase"
був для мене новим навіть ... І я просто кинув на суму 250 представників на відповідь, яку ви цитуєте.