ऐसा करने के लिए कोई अंतर्निहित पद्धति नहीं है, लेकिन यह एक परीक्षण बनाने के लिए काफी सरल है जो कुछ भी संशोधित नहीं करता है और आपको बस अपने पासफ़्रेज़ की जांच करने की अनुमति देता है।
आपने निर्दिष्ट नहीं किया, इसलिए मैं मान लूंगा कि आप V2 से कम GnuPG संस्करण का उपयोग कर रहे हैं और अपने कमांड लाइन दुभाषिया के लिए Bash के साथ लिनक्स पर हैं।
मैं यहां कमांड दे रहा हूं और नीचे मैं बताऊंगा कि प्रत्येक भाग क्या करता है - (नोट: निम्नलिखित GnuPG श्रृंखला संस्करण 1 के लिए है, GnuPG श्रृंखला v2 के लिए नीचे देखें)
echo "1234" | gpg --no-use-agent -o /dev/null --local-user <KEYID> -as - && echo "The correct passphrase was entered for this key"
जो सबसे पहले होता है, वह कुछ टेक्स्ट को GnuPG के साथ साइन इन करने के लिए पाइप करता है echo "1234" |
- क्योंकि हम वास्तव में कुछ भी साइन नहीं करना चाहते हैं, यह सिर्फ एक परीक्षा है, इसलिए हम कुछ बेकार टेक्स्ट पर हस्ताक्षर करेंगे।
अगला, हम gpg से कहते हैं कि प्रमुख एजेंट का उपयोग न करें --no-use-agent
; यह बाद में महत्वपूर्ण है क्योंकि, आपके प्रमुख एजेंट के आधार पर, यह सफलता पर "0" वापस नहीं कर सकता है, और यही सब हम करना चाहते हैं - अपने पासफ़्रेज़ की सफलता को सत्यापित करें।
अगला, हम gpg को सीधे हस्ताक्षरित डेटा को /dev/null
फ़ाइल में डालने के लिए कहते हैं, जिसका अर्थ है कि हम इसे छोड़ देते हैं और टर्मिनल पर परिणाम नहीं लिखते हैं - नोट: यदि आप लिनक्स / यूनिक्स के कुछ संस्करण का उपयोग नहीं कर रहे हैं, तो यह फ़ाइल मौजूद नहीं हो सकती है। खिड़कियों पर आपको केवल -o /dev/null
भाग को छोड़ कर स्क्रीन पर हस्ताक्षर किए गए डेटा को लिखने की अनुमति देनी पड़ सकती है ।
अगला, हम उस कुंजी को निर्दिष्ट करते हैं जिसका उपयोग करके हम अपना परीक्षण करना चाहते हैं --local-user 012345
। आप अधिकतम विशिष्टता के लिए KeyID का उपयोग कर सकते हैं, या किसी उपयोगकर्ता नाम का उपयोग कर सकते हैं, जो भी आपकी आवश्यकताओं का सबसे अच्छा सूट करता है।
आगे हम निर्दिष्ट करते हैं -as
, जो एएससीआई आउटपुट मोड को सक्षम करता है, और हस्ताक्षर करने के लिए संदर्भ मोड सेट करता है। -
बाद में बस GnuPG बताता डेटा मानक में है, जो आदेश हम दे दी है के पहले भाग होने पर हस्ताक्षर किए जाने के लिए प्राप्त करने echo "1234" |
।
और अंतिम, हमारे पास && echo "A message that indicates success"
- "&&" का अर्थ है, यदि पिछली कमांड सफल रही, तो इस संदेश को प्रिंट करें। यह सिर्फ स्पष्टता के लिए जोड़ा गया है, क्योंकि ऊपर दिए गए आदेश की सफलता को अन्यथा किसी भी आउटपुट द्वारा इंगित नहीं किया जाएगा।
मुझे आशा है कि आपके लिए यह समझने के लिए पर्याप्त स्पष्ट है कि क्या चल रहा है, और आप इसका उपयोग कैसे कर सकते हैं जो आप करना चाहते हैं। यदि कोई हिस्सा अस्पष्ट है या आप नहीं समझते हैं, तो मुझे स्पष्ट करने में खुशी होगी। सौभाग्य!
[संपादित करें] - यदि आप GnuPG v2 का उपयोग कर रहे हैं, तो उपरोक्त कमांड को थोड़ा संशोधित करना होगा, जैसे:
echo "1234" | gpg2 --batch --passphrase-fd 1 -o /dev/null --local-user <KEYID> -as - && echo "The correct passphrase was entered for this key"
इसका कारण, GnuPG v2 एक एजेंट के माध्यम से पासफ़्रेज़ को पुनः प्राप्त करने की उम्मीद करता है, इसलिए हम एजेंट के उपयोग को अक्षम नहीं कर सकते --no-use-agent
हैं और वांछित प्रभाव डाल सकते हैं; इसके बजाय हमें GnuPG v2 को बताने की आवश्यकता है कि हम एक "बैच" प्रक्रिया चलाना चाहते हैं, और विकल्प का उपयोग करके STDIN (मानक) से पासफ़्रेज़ को पुनः प्राप्त करते हैं --passphrase-fd 1
।
gpg --local-user <KEYID> -as
। यह बस एजेंट को पासफ़्रेज़ के लिए पूछता है और आपको बताता है कि क्या यह सही था (फिर कुछ नहीं करता है)।