Emacs का उपयोग करके .gpg फ़ाइल को डिक्रिप्ट करने में असमर्थ, लेकिन कमांड लाइन gpg काम करती है


12

मेरे पास एक accounts.org.gpgफाइल है। मैं इसे सीधे gpg का उपयोग करके खोल सकता हूं:

$ gpg -d ./accounts.org.gpg 

You need a passphrase to unlock the secret key for
user: "Omair Majid <removed@removed>"
4096-bit RSA key, ID 7CC8AAC6, created 2012-01-18 (main key ID 66484681)

gpg: encrypted with 4096-bit RSA key, ID 7CC8AAC6, created 2012-01-18
    "Omair Majid <removed@removed>"
+TITLE: Accounts
<rest of output removed>

लेकिन मैं Emacs का उपयोग करके एक ही फ़ाइल नहीं खोल सकता। इसे emacs में खोलने की कोशिश करने से मुझे एक त्रुटि मिलती है:

epa-file--find-file-not-found-function: Opening input file: Decryption failed, No secret key: E295ECEC7CC8AAC6

क्या इस काम को करने के लिए मुझे कुछ emacs साइड में कॉन्फ़िगर करने की आवश्यकता है?

कुछ अतिरिक्त पृष्ठभूमि के लिए, मैंने इस फ़ाइल को किसी अन्य मशीन (Emacs के उसी संस्करण का उपयोग करके) पर बनाया, जिस पर Emacs उस फ़ाइल को ठीक से पढ़ / लिख सकते थे। मैंने फिर ~/.gnupg इस मशीन पर ओवर की सामग्री की नकल की । और अब gpg अभी भी इसे पढ़ सकते हैं, लेकिन Emacs नहीं कर सकते।

संपादित करें: यह एक gpg1 बनाम gpg2 अंतर हो सकता है?

$ gpg2 --decrypt accounts.org.gpg 
gpg: encrypted with RSA key, ID E295ECEC7CC8AAC6
gpg: decryption failed: No secret key

अन्य मशीन पर Emacs कैसा था (एक ही विन्यास का उपयोग करके, Emacs का एक ही संस्करण (25.1) और एक ही OS (Fedora 24 x86_64, gpg और gpg2 संकुल का एक ही संस्करण)) इसे पढ़ें और इसे लिखें। वैसे भी, का उपयोग कर

(setq epg-gpg-program "/usr/bin/gpg")

फिर भी उसी त्रुटि का परिणाम है।


क्या आपने कोशिश की है (setq epg-gpg-program "gpg2")?
ah

मैंने किया। यह डिफ़ॉल्ट भी है। और यह काम नहीं करता है। जैसे gpg2 कमांड लाइन प्रोग्राम नहीं करता है। मुझे लगता है कि यह gpg2 ही के साथ एक समस्या है शुरू कर रहा हूँ, बिल्कुल नहीं emacs।
ओमायर माजिद

3
@caisah बग # 24229 देखें , के setqलिए काम नहीं करता है epg-gpg-program, आपको इसे अनुकूलित करना होगा।
npostavs 16

जवाबों:


15

आप यह नहीं कहते कि आपके पास कौन सा OS है और न ही emacs का संस्करण।

मैंने कल OSX में ठीक उसी समस्या को हल किया और इस लिंक से जानकारी का उपयोग करके 25.1 emacs किया: http://colinxy.github.io/software-installation/2016/09/24/emacs25-easypg-issue.html

मैंने ये आदेश दिए:

brew unlink gnupg2 gpg-agent dirmngr
brew uninstall gnupg2 gpg-agent dirmngr
brew install gnupg21
ln -s /usr/local/bin/gpg2 /usr/local/bin/gpg

और मेरे emacs फ़ाइल में पिनेंट्री मोड सेट करें:

(setf epa-pinentry-mode 'loopback)

कृपया OS और Emacs संस्करणों के लिए मेरे संपादन देखें। मैं निश्चित रूप से gpg / gpg2 के सिस्टम संस्करणों को ओवरराइड करने की योजना नहीं बनाता।
ओमैर माजिद

मानक काढ़ा पैकेज gnupg कुछ समय के लिए अब संस्करण 2.1 हो गया है। पुराने संस्करण 1.4 और 2.0 जो इसके साथ पूरी तरह से संगत नहीं हैं वे अलग-अलग पैकेज के रूप में उपलब्ध हैं।
Heikki

बस एक जानकारी: मुझे लिनक्स पर इसी तरह की समस्या थी और इस समाधान ने मेरी समस्या को भी ठीक कर दिया।
मानोहेल विलेला

2
(setf epa-pinentry-mode 'loopback)चाल को इंगित करने के लिए धन्यवाद ।
phs

1
(setf epa-pinentry-mode 'loopback).Emacs में लाइन जोड़ना मेरे Gnu Emacs 26.2 के लिए पर्याप्त था। होमवर्क से gpg 2.2.16 के साथ।
डेव एक्स
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.