gpg2: कोई गुप्त कुंजी नहीं


21

मैं मुद्दे के बिना एक साल से अधिक के लिए एनगेलमेल का उपयोग कर रहा हूं, और आज यह काम नहीं करता है।

मुझे निम्नलिखित रोचक तथ्य मिले:

gpg --decrypt something.gpg # this works
gpg2 --decrypt something.gpg # this fails

तो मेरी मशीन पर gpg संस्करण 2 के साथ कुछ टूट गया है।

इसने मुझे यह देखने के लिए प्रेरित किया कि:

gpg --list-secret-keys # reads from ~/.gnupg/secring.gpg
gpg2 --list-secret-keys # reads from ~/.gnupg/pubring.gpg (pubring?!) 

यह समस्या की जड़ प्रतीत होती है ... निश्चित रूप gpg2से गुप्त कुंजी नहीं मिल सकती क्योंकि यह गलत फ़ाइल में दिख रही है।

gpg2जब मेरा gpgकाम ठीक होगा तो मैं कैसे असफल हो सकता हूं ? मुझे यह बताने के लिए कोई विकल्प नहीं दिखता कि गुप्त कुंजियाँ कहाँ से पढ़ी जाती हैं।

किसी के पास कोई विचार है?


@Grawity का जवाब :

धन्यवाद, मैं आपकी मदद की सराहना करता हूं। मैं भागा strace, और मैं देखता हूं कि तुम किस बारे में बात कर रहे हो।

हालाँकि, इसके बाद भी gpg2 --import ...मैं व्यवहार में कोई अंतर नहीं देख रहा हूँ। मुझे केवल यह काम करने के लिए मिल सकता है अगर मैं रिबूट (जीपीजी-एजेंट शुरू किए बिना), दौड़ता हूं gpg2 --import ..., तो चलाएं gpg2 --decrypt ...। उस क्रम के बाद, थंडरबर्ड + एनगमेल भी अच्छी तरह से व्यवहार करता है। हालाँकि, 15 मिनट या उसके बाद (मेरा अनुमान वह पासवर्ड है जिसे मैंने डिक्रिप्ट किया है, समाप्त हो गया है), फिर gpg-agentअपने पुराने व्यवहार पर वापस आ गया है। यह क्रम रिपीटेबल है।

तो यहाँ कुछ उत्पादन है अगर यह कुछ भी स्पष्ट करने में मदद करता है:

का आउटपुट gpg2 -K:

/home/<username>/.gnupg/pubring.gpg
---------------------------------
sec   rsa4096/AAAAAAAA <date> [SC]
uid         [ultimate] <description of me>
ssb   rsa4096/BBBBBBBB <date> [E]

का उत्पादन gpg-connect-agent

> keyinfo --list
S KEYINFO <keygrip associated with AAAAAAAA> D - - - P - - -
S KEYINFO <keygrip associated with BBBBBBBB> D - - - P - - -
OK

का उत्पादन gpg2 -v -r <my email> -e testfile

gpg: using PGP trust model
gpg: using subkey BBBBBBBB instead of primary key AAAAAAAA
gpg: This key belongs to us
gpg: reading from 'testfile'
gpg: writing to 'testfile.gpg'
gpg: RSA/AES256 encrypted for: "BBBBBBBB <description of me>"

का उत्पादन gpg2 -v -d testfile.gpg

gpg: public key is BBBBBBBB
gpg: using subkey BBBBBBBB instead of primary key AAAAAAAA
gpg: using subkey BBBBBBBB instead of primary key AAAAAAAA
gpg: encrypted with 4096-bit RSA key, ID BBBBBBBB, created <date>
      "<description of me>"
gpg: public key decryption failed: Operation cancelled
gpg: decryption failed: No secret key

क्या आपने इसे हल करना समाप्त कर दिया? मुझे ठीक वैसी ही समस्या हो रही है।
वोल्कर

कोई बात नहीं, मैंने इसे ठीक कर दिया। उपयोग करने की आवश्यकता है gpg-agent, और पेंट्री प्रोग्राम को सेट करने की आवश्यकता है pinentry-gtk-2। इससे पहले कि यह pinentry-gnome3मेरे सिस्टम पर अस्तित्व में था, लेकिन यह काम नहीं किया। मुझे मैन्युअल रूप से स्थापित करना था pinentry-gtk-2
वोल्कर

जवाबों:


22

… बेशक gpg2 गुप्त कुंजी नहीं ढूंढ सकता क्योंकि यह गलत फ़ाइल में दिख रही है।

यह एकमात्र फ़ाइल नहीं है जो इसे देख रही है।

GnuPG 1.x (और 2.0) में, "सेकंडिंग" में आपके कीब्लॉक के सार्वजनिक डेटा की एक डुप्लीकेट कॉपी होती थी, इसलिए यह पूरी तरह से स्व-निहित था (और केवल अंतर था gpg -kऔर gpg -Kवह कौन सी फाइल थी जिसे पढ़ा होगा) , लेकिन एक ही समय में कार्यक्रम को बनाए रखने के लिए और अधिक कठिन।

GnuPG 2.1 में, गुप्त कुंजी अब स्वतंत्र रूप से संग्रहीत की जाती हैं - वे gpg- एजेंट द्वारा बनाए रखी जाती हैं , जो उन्हें अंदर रखता है ~/.gnupg/private-keys-v1.d/। इसलिए दोनों को gpg -kऔर gpg -Kअब प्यूपिंग से ओपनपीजीपी सूचना को पढ़ना है, लेकिन बाद के अतिरिक्त जीपीजी-एजेंट से पूछते हैं कि किन प्रमाणपत्रों में गुप्त कुंजी हैं। आप उपयोग कर रहे हैं strace , आप एक नोटिस देना चाहिए connect()pubring पढ़ने के बाद कॉल सही।

यदि GnuPG स्वचालित रूप से कुंजियों को स्थानांतरित नहीं करता है, तो सीधे संपूर्ण सेकंडिंग आयात करें:

gpg2 --import ~/.gnupg/secring.gpg

एजेंट की सामग्री को मैन्युअल रूप से जांचने के लिए:

$ gpg-connect- 
Agent> keyinfo --list
S KEYINFO 926145FFCA32B3E6E079A0CF73EA77C40733A349 D - - - P - -
S KEYINFO BACFB81EAFC864F4AB2926E8B1F55AD579F78D1A D - - - P - -
S KEYINFO FF3D1DD51B9C79E148CCCEA5F7F3E25EC96048B7 D - - - - - -
S KEYINFO 4D29EF1460F164CDB11D0FC0247214660ACDD60F D - - - - - -
S KEYINFO 06B13685B9AA429B9CABCE480930D74B991C8DF0 D - - - - - -
S KEYINFO B28DB8D045654E8A6A40466A07FCD9E432935E29 D - - - - - -
ठीक
> / 
$ $

ये "कीग्रैप्स" हैं - उनकी तुलना GnuPG के सेक्रिंग से करें:

$ gpg - सूची-गुप्त-कुंजियाँ - साथ-कीग्रेप
/home/fred/.gnupg/pubring.kbx
--------------------------------
sec25519 2018-08-18 [SC]
      2357E133AD5D24F6CB2C1B0CEF4F7ED27E252632
      Keygrip = 4D29EF1460F164CDB11D0FC0247214660ACDD60F 
uid [परम] फ्रेड फोबार <fred@example.com>

मेरे पास एक ही समस्या थी: मैंने एक महत्वपूर्ण gpg --gen-keyउपयोग उत्पन्न करने की कोशिश की जिसे मैं उपयोग करना चाहता था gopass। दुर्भाग्य से, gopassउपयोग करता है gpg2... gpg2 --importएक आकर्षण की तरह काम किया! धन्यवाद!
औरिबा

मेरे लिए gpg2 --import ~/.gnupg/pubring.gpgयह तय है।
दिलावर

तुम मेरी हिरो हो
लो-टैन

1

आखिरकार, मैंने तय किया कि मुद्दा यह है कि मैं डेबियन अनस्टेबल का उपयोग कर रहा था और ए द्वारा शुरू किया गया एक संस्करण बेमेल था apt-get dist-upgrade। मुझे लगता है यही कारण है कि वे इसे "अस्थिर" कहते हैं।


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