Không thể giải mã tệp .gpg bằng emacs nhưng dòng lệnh gpg hoạt động


11

Tôi có một accounts.org.gpgtập tin. Tôi có thể mở nó bằng gpg trực tiếp:

$ 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>

Nhưng tôi không thể mở cùng một tệp bằng Emacs. Cố gắng mở nó trong emacs cho tôi một lỗi:

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

Có cái gì tôi cần cấu hình ở phía emacs để làm cho nó hoạt động không?

Đối với một số nền tảng bổ sung, tôi đã tạo tệp này trên một máy khác (sử dụng cùng một phiên bản Emacs), trên đó Emacs có thể đọc / ghi vào tệp đó tốt. Sau đó tôi đã sao chép nội dung của ~/.gnupg máy này. Và bây giờ gpg vẫn có thể đọc nó, nhưng Emacs thì không thể.

EDIT: Đây có thể là một sự khác biệt gpg1 so với gpg2?

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

Các Emacs trên máy khác như thế nào (sử dụng cùng cấu hình, cùng một phiên bản Emacs (25.1) và cùng một HĐH (Fedora 24 x86_64, cùng một phiên bản của gói gpg và gpg2)) đọc từ nó và ghi vào nó. Dù sao sử dụng,

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

Vẫn có kết quả trong cùng một lỗi.


Bạn đã thử (setq epg-gpg-program "gpg2")chưa
caisah

Tôi đã làm. Nó cũng là mặc định. Và nó không hoạt động. Giống như chương trình dòng lệnh gpg2 không. Tôi bắt đầu nghĩ rằng đây là một vấn đề với chính gpg2, không phải là emacs.
Omair Majid

3
@caisah Xem Bug # 24229 , setqkhông hoạt động epg-gpg-program, bạn phải tùy chỉnh nó.
npostavs

Câu trả lời:


15

Bạn không nói hệ điều hành nào cũng như phiên bản emacs bạn có.

Tôi đã giải quyết chính xác vấn đề ngày hôm qua trong OSX và emacs 25.1 bằng cách sử dụng thông tin từ liên kết này: http://colinxy.github.io/software-installation/2016/09/24/emacs25-easypg-su.html

Tôi đã chạy các lệnh này:

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

và đặt chế độ pinentry trong tệp conf emacs của tôi:

(setf epa-pinentry-mode 'loopback)

Vui lòng xem các chỉnh sửa của tôi cho các phiên bản OS và Emacs. Tôi chắc chắn không có kế hoạch ghi đè các phiên bản hệ thống của gpg / gpg2.
Omair Majid

Gói bia tiêu chuẩn gnupg có một thời gian bây giờ là phiên bản 2.1. Các phiên bản cũ hơn 1.4 và 2.0 không tương thích hoàn toàn với nó có sẵn dưới dạng các gói riêng biệt.
Heikki

Chỉ cần một thông tin: Tôi đã có một vấn đề tương tự trên Linux và giải pháp này cũng đã khắc phục vấn đề của tôi.
Manoel Vilela

2
Cảm ơn đã chỉ ra các (setf epa-pinentry-mode 'loopback)mẹo.
phs

1
Thêm (setf epa-pinentry-mode 'loopback)dòng trong .emacs là đủ cho Gnu Emacs 26.2 của tôi với gpg 2.2.16 từ homebrew.
Dave X
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.