GnuPG --passphrase का उपयोग कैसे करें?


11

मैं एक स्क्रिप्ट लिखना चाहता हूं gpgजो पासफ़्रेज़ "टेस्ट" के साथ "फ़ाइल" नामक एक फ़ाइल चलाएगा ।

आम तौर पर, जब मैं उपयोग करता हूं gpg, तो मैं आमतौर पर बस चलाता हूं gpg -c fileऔर यह मुझसे पासफ़्रेज़ के लिए पूछता है। लेकिन जब से मैं चाहता हूं कि यह स्क्रिप्ट अपने आप ही सब कुछ कर दे, तो मैं कमांड के हिस्से के रूप में पासफ़्रेज़ प्रदान करना चाहूंगा।

अब जब मैं उपयोग करने की कोशिश करता हूं: gpg -c file --passphrase testतो यह आउटपुट:

उपयोग: gpg [विकल्प] - असममित [फ़ाइल नाम]

यह कौन सा सीम मुझे उपयोग करना चाहता है gpg --passphrase test --symmetric file। लेकिन अगर मैं ऐसा करता हूं, तो यह एक संवाद को पॉप अप करने के लिए कहता है जो मुझे उपयोग करने के लिए कहता है; जो मुझे नहीं चाहिए।

मैं सही तरीके से तर्क कैसे सेट करूं?

जवाबों:


7

GnuPG में, विकल्पों से पहले के आदेश होने चाहिए, इस प्रकार --passphraseविकल्प को पहले आना चाहिए --symmetric

पिन प्रविष्टि विंडो के बारे में, जो वैसे भी पॉप अप करता है (हालांकि आप उपयोग करते हैं --passphrase), आप शायद पहले से ही GnuPG 2 का उपयोग कर रहे हैं, जिसे --batchएक साथ उपयोग करने की आवश्यकता है --passphrase। आदमी पृष्ठों से:

--passphrase string
    Use string as the passphrase. This can only be used if only one
    passphrase is supplied. Obviously, this is of very questionable
    security on a multi-user system. Don't  use this option if you
    can avoid it.  Note that this passphrase is only used if the
    option --batch has also been given.  This is different from
    GnuPG version 1.x.

ज्ञात रहे कि मल्टी यूजर सिस्टम पर अन्य सभी उपयोगकर्ता आपकी कमांड लाइन को पढ़ सकेंगे, और इस प्रकार पासफ़्रेज़ को भी, जबकि GnuPG निष्पादित होता है। --passphrase-*फ़ाइल या पाइप से पढ़ने के बजाय अन्य विकल्पों में से एक का बेहतर उपयोग करें।


आप जो कह रहे हैं, वह यह है कि मेरे आदेश --passphraseऔर --symmetricतर्क वास्तव में सही थे, लेकिन मुझे केवल --batchतर्क याद आ रहा था ? क्योंकि यह मेरे लिए काम नहीं किया। मैंने --batchपहले और बाद में, बस मामले में दोनों को जोड़ने की कोशिश की है । इसके अलावा, मैं यह नहीं जानता कि अगर मैं क्या उपयोग कर रहा हूं तो यह GPG 2 है, लेकिन यह कि आपने जो पेस्ट किया है वह Note that this passphrase is only used if the option --batch has also been given.मेरे manपेज में मौजूद नहीं है ।

आप किस ऑपरेटिंग सिस्टम / वितरण का उपयोग कर रहे हैं? gpg --versionआपके द्वारा उपयोग किए जा रहे GnuPG संस्करण के बारे में जानकारी देनी चाहिए। क्या आपके पास एक gpg2बाइनरी है?
जेन्स एराट

मैं Xubuntu 14.04 का उपयोग कर रहा हूं। का संस्करण gpg1.4.16 है। आपकी टिप्पणियों से प्रेरित होकर, मुझे पता चला कि gpg2 को अलग से विकसित किया जा रहा है, इसलिए मैंने इसे स्थापित किया और इसे आज़माया, लेकिन यह शिकायत करता है किno valid OpenPGP data found. processing message failed: Unknown system error

जेन्स आप सुपर कमाल के हैं और बहुत सारे सवालों के जवाब w / महान जवाब देते हैं, लेकिन आप एक बिंदु पर गलत हैं: "विकल्प पूर्ववर्ती आदेशों का पालन करना चाहिए, इस प्रकार - thepassphrase विकल्प को पहले आना चाहिए - एसिमेट्रिक।" सच नहीं है।
rsaw

@rsaw: आप आंशिक रूप से सही हैं - --symmetricऔर --passphrase, आदेश प्रासंगिक नहीं लगता है, लेकिन बाद में इसे --exportपरिभाषित और परिभाषित करने का प्रयास करें --armor। आमतौर पर, विकल्पों को पूर्ववर्ती आदेशों का पालन करना चाहिए, जो कि मैन पेजों में परिभाषित क्रम भी है।
जेन्स इरट

2

यदि gpg --versionv2 रिपोर्ट करता है, तो आपको --batchविकल्प जोड़ने की आवश्यकता है ।

सिंटैक्स आउटपुट के आधार पर आप शायद v1 का उपयोग कर रहे हैं, जिस स्थिति में आप चाहते हैं:

gpg --passphrase PASS -c --no-use-agent FILE

ध्यान दें कि विकल्पों का क्रम महत्वपूर्ण नहीं है; हालाँकि, किसी भी फ़ाइल को अंतिम तर्क होना चाहिए।


1

का उपयोग --pinentry-mode loopbackके साथ काम करता है --passphraseऔर --passphrase-[file/fd], और आप नए जानकारी दर्ज करें, उदाहरण के लिए फ़ाइल नाम संघर्ष के मामले में करने देगा:

File 'xyz.gpg' exists. Overwrite? (y/N)n
Enter new filename: xyz2.gpg

इसके विपरीत --batch, जल्दी से असफल हो जाएगी, कह रही है...failed: File exists


यदि आपने मूल रूप से क्रिया विकल्प ( -v) पहले जोड़ा था , तो आपको कुछ इस तरह से देखना चाहिए:

$ gpg -v -c file --pinentry-mode loopback --passphrase-file=passfile
gpg: Note: '--pinentry-mode' is not considered an option
gpg: Note: '--passphrase-file=passfile' is not considered an option
usage: gpg [options] --symmetric [filename]

यह स्पष्ट रूप से इंगित करना कि यह पहले डाल -c( --symmetric) के बारे में कुछ पसंद नहीं आया ।


मैं gpg2 के --passphraseविकल्पों को अनदेखा करने के व्यवहार पर विचार करता हूं जब तक कि --batchबग के साथ न हो ।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.