क्या यह gpg
इस तरह से कॉन्फ़िगर करने योग्य है कि मैं केवल एक बार पासफ़्रेज़ दर्ज करूँ, और यह पूरे सत्र के लिए काम करेगा (मैं उपयोग कर रहा हूँ Ubuntu/XFce
)?
मुझे यकीन नहीं है कि कैसे gpg
काम करता है, ऐसा लगता है कि डिफ़ॉल्ट फ़ंक्शन पासफ़्रेज़ के लिए gpg
पूछता है gpg-agent
और एजेंट पासफ़्रेज़ के लिए पूछने के लिए पिन-एंट्री चलाता है।
मैं प्रति सत्र केवल एक बार पेन्ट्री-श्रापों का उपयोग करना चाहूंगा, इसलिए मैं अपना पासफ़्रेज़ पेस्ट कर सकता हूं (मेरे पास hex
एक वाक्य से स्ट्रिंग है - मैं उपयोग करता हूं echo -n <SENTENCE> | str-hex
) और पंजेफ्रेज़ को डाले बिना पंजे मेल से ईमेल पर हस्ताक्षर करता हूं (आप पंजे के साथ पिनेंट्री-शाप का उपयोग नहीं कर सकते हैं) मेल)।
GPG_PROCESS=`cut -d: -f 2 $HOME/.gpg-agent-info` if test -f $HOME/.gpg-agent-info && \ kill -0 ${GPG_PROCESS} 2>/dev/null && \ [[ ${GPG_PROCESS} == `pgrep -x -u "${USER}" gpg-agent` ]] ; then
इसे संशोधित किया और इसने ठीक काम किया। समस्या यह है कि ऊपर की स्क्रिप्ट जांचती है कि क्या प्रक्रिया.gpg-agent-info
जीवित है और संकेतों को स्वीकार करती हैkill -0
। यदि कोई प्रक्रिया है, लेकिन नहींgpg-agent
, तो हमें गलत व्यवहार मिलता है। संलग्न कोड की जाँच हमारे पास सही प्रक्रिया है।