ไม่สามารถถอดรหัสไฟล์. gpg โดยใช้ emacs แต่ใช้งานบรรทัดคำสั่ง 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) และระบบปฏิบัติการเดียวกัน (Fedora 24 x86_64, gpg และ gpg2 แพ็คเกจรุ่นเดียวกัน) อ่านจากมันและเขียนลงไป อย่างไรก็ตามการใช้

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

ยังคงส่งผลให้เกิดข้อผิดพลาดเดียวกัน


คุณเคยลอง(setq epg-gpg-program "gpg2")ไหม
caisah

ฉันทำ. มันเป็นค่าเริ่มต้นด้วย และมันไม่ทำงาน เช่นเดียวกับโปรแกรมบรรทัดคำสั่ง gpg2 ไม่ได้ ฉันเริ่มคิดว่านี่เป็นปัญหาของ gpg2 เองไม่ใช่ emacs เลย
Omair Majid

3
@caisah ดูbug # 24229 , setqไม่ทำงานสำหรับepg-gpg-programคุณต้องปรับแต่ง
npostavs

คำตอบ:


15

คุณไม่ได้พูดว่าคุณมีระบบปฏิบัติการหรือเวอร์ชั่นใดของ emac

ฉันแก้ไขเมื่อวานนี้ว่าปัญหาเดียวกันใน OSX และ emacs 25.1 โดยใช้ข้อมูลจากลิงก์นี้: 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

และตั้งค่าโหมด pinentry ในไฟล์ conf emacs ของฉัน:

(setf epa-pinentry-mode 'loopback)

โปรดดูการแก้ไขของฉันสำหรับเวอร์ชั่น OS และ Emacs ฉันไม่ได้วางแผนที่จะเขียนทับ gpg / gpg2 เวอร์ชั่นระบบ
Omair Majid

แพคเกจการชงมาตรฐาน gnupg มีบางรุ่นที่เป็นเวอร์ชั่น 2.1 เวอร์ชั่นที่เก่ากว่า 1.4 และ 2.0 ที่ไม่สามารถใช้งานร่วมกันได้มีให้เป็นแพ็คเกจแยกต่างหาก
Heikki

เพียงแค่ข้อมูล: ฉันมีปัญหาที่คล้ายกันบน Linux และวิธีนี้แก้ไขปัญหาของฉันได้เช่นกัน
Manoel Vilela

2
ขอบคุณสำหรับการชี้(setf epa-pinentry-mode 'loopback)เคล็ดลับ
phs

1
การเพิ่ม(setf epa-pinentry-mode 'loopback)บรรทัดเป็น. emacs เพียงพอสำหรับ Gnu Emacs ของฉัน 26.2 ด้วย gpg 2.2.16 จาก homebrew
Dave X
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.