क्या मैं सिर्फ एक बार अपना 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- एजेंट पासवर्ड कैश नहीं करता है। क्या इसे ठीक किया जा सकता है?
प्रणाली की जानकारी:
- जब वह शेल स्क्रिप्ट का उपयोग नहीं कर रहा है, तो मेरे पास gnupg- एजेंट के साथ कोई समस्या नहीं है। जब मैं शेल में फ़ाइल को मैन्युअल रूप से साइन / डिक्रिप्ट करता हूं, तो पिनेंट्री दो बार पासवर्ड मांगता है, फिर रीबूट होने तक इसे कैश करता है।
- डेबियन व्हीजी का उपयोग करना।
- 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-users मेलिंग सूची पर पूछा है , लेकिन कोई उत्तर नहीं।
शायद यह जवाब काम करेगा? शायद gpg-connect-agent
आवश्यकता है?
exec 3<<<"$passphrase"
मेरे लिए भी नया था ... और मैंने आपके द्वारा दिए गए उत्तर पर एक 250 प्रतिनिधि इनाम फेंका।