Làm cách nào để có được gpg-agent để lưu các cụm mật khẩu tôi nhập khi đọc / lưu tệp * .gpg?


9

Tôi muốn làm việc với gpgcác tệp được mã hóa bằng Emacs và muốn có thể nhập cụm mật khẩu cho mỗi tệp được mã hóa chỉ một lần cho mỗi phiên Emacs.

Tôi đã từng có thể làm điều này bằng cách đặt biến epa-file-cache-passphrase-for-symmetric-encryptionthành t, nhưng điều này không còn hoạt động. Có thể tìm thấy lời giải thích trong dòng cuối cùng của tài liệu về biến epa-file-cache-passphrase-for-symmetric-encryption:

(defcustom epa-file-cache-passphrase-for-symmetric-encryption nil
  "If non-nil, cache passphrase for symmetric encryption.

For security reasons, this option is turned off by default and
not recommended to use.  Instead, consider using gpg-agent which
does the same job in a safer way.  See Info node `(epa) Caching
Passphrases' for more information.

Note that this option has no effect if you use GnuPG 2.0."
  :type 'boolean
  :group 'epa-file)

Sau một bản cập nhật hệ thống gần đây, gpgtrong hệ thống của tôi bây giờ là phiên bản 2.1.8, điều này làm cho epa-file-cache-passphrase-for-symmetric-encryptionkhông hiệu quả.

Các tài liệu tham khảo được đề cập trong tài liệu trên dẫn đến một trang chỉ cho bạn biết, sử dụng lại gpg-agent, nhưng không nói gì về cách thực hiện. Tôi chưa thể tìm thấy hướng dẫn rõ ràng về cách thiết lập gpg-agentcho trường hợp sử dụng mà tôi đã mô tả ở đầu bài này. Bất kỳ trợ giúp sẽ được đánh giá cao.

FWIW, psnói với tôi rằng /usr/bin/gpg-agent --supervisednó thực sự đang chạy. Tôi phải làm gì khác để đưa nó vào bộ đệm mật khẩu tôi nhập khi làm việc với *.gpgcác tệp?

Ngoài ra, giá trị của epg-gpg-programbiến của tôi là /usr/bin/gpg, đề cập đến phiên bản 2.1.8 đã cài đặt được gpgđề cập trước đó.

Các phiên bản của Emacs tôi đang sử dụng là 26.0.50 và 27.0.50. Đối với cả hai trường hợp, phiên bản của epagói là 23.1.


Bạn có thể sử dụng pinentrygói theo câu trả lời này :
Felipe Lema

@FelipeLema: Đối với tôi, sử dụng pinentry đã thay đổi, mật khẩu được lưu để giải mã khi mở tệp, nhưng tôi vẫn phải nhập chúng hai lần để mã hóa trong khi lưu. :-(
Weidenrinde

Câu trả lời:


4

https://www.gnupg.org/documentation/manuals/gnupg/Agent-Options.html#Agent-Options

Trong tài liệu này, các tùy chọn bạn có thể quan tâm

  • default-cache-ttl n, Đặt thời gian mục nhập bộ đệm hợp lệ thành n giây. Mặc định là 600 giây. Mỗi lần truy cập bộ nhớ cache, bộ đếm thời gian của mục nhập được đặt lại. Để đặt tuổi thọ tối đa của mục nhập, hãy sử dụng max-cache-ttl. Lưu ý rằng cụm mật khẩu được lưu trong bộ nhớ cache có thể không bị xóa ngay lập tức khỏi bộ nhớ nếu không có ứng dụng khách nào yêu cầu thao tác bộ đệm. Điều này là do chức năng vệ sinh nội bộ chỉ chạy mỗi vài giây.
  • max-cache-ttl n Đặt thời gian tối đa mà mục nhập bộ đệm có giá trị là n giây. Sau thời gian này, một mục nhập bộ đệm sẽ hết hạn ngay cả khi nó đã được truy cập gần đây hoặc đã được đặt bằng cách sử dụng cụm từ gpg-preset-mật khẩu. Mặc định là 2 giờ (7200 giây).

bạn có thể đặt tệp này trong tệp cấu hình ~ / .gnupg / gpg-agent.conf

ví dụ: default-cache-ttl 86400

Có vẻ như gpg-agent không hỗ trợ mật khẩu lưu trữ cho toàn bộ phiên


Cảm ơn, nhưng điều này không làm việc cho tôi. Ngay cả sau khi cấu hình lại (với thời gian bộ nhớ cache dài) và khởi động lại gpg-agent, tôi vẫn được nhắc nhập cụm mật khẩu ( hai lần ) mỗi lần tôi cố lưu *.gpgtệp.
kjo

bạn có thể xác nhận liệu bộ nhớ đệm hoạt động khi giải mã trong thiết bị đầu cuối?
Junnu

Bộ nhớ đệm hoạt động khi giải mã , cả từ bên trong Emacs và từ thiết bị đầu cuối. Vấn đề phát sinh khi tôi cố lưu một *.gpgtập tin (sau khi thực hiện một số thay đổi cho nó). Sau đó, tôi luôn được nhắc về mật khẩu của mình, hai lần . (Ngẫu nhiên, đây là hành vi tương đối mới. Nó từng là trường hợp bộ nhớ đệm hoạt động cả để giải mã và mã hóa từ Emacs.) Tương tự như vậy, bộ nhớ đệm không hoạt động khi tôi cố mã hóa nội dung --symmetrictừ thiết bị đầu cuối.
kjo

Tôi miễn cưỡng trao tiền thưởng ở đây, vì câu trả lời của bạn không giải quyết được vấn đề của tôi, và trong mọi trường hợp, nó không chi tiết như tôi mong đợi.
kjo

được rồi .. không có vấn đề gì .. tôi không tìm thấy tài liệu nào đề cập đến gpg-agent khi sử dụng mật khẩu được lưu trong bộ nhớ cache để mã hóa đối xứng .. và ở đây reddit.com/r/emacs/comments/5skzsu/, nó được đề cập rằng "GnuPG 2 là cố ý (bởi các nhà phát triển của nó và bởi nhà phát triển EPA / EPG) không hỗ trợ các cụm mật khẩu lưu trữ. Cài đặt GnuPG 1. Nó không liên quan đến phiên bản Emacs. " nhưng không có tài liệu tham khảo thủ công nào được đề cập ở đây .. nếu có thể, bạn có thể thử các giải pháp khác có thể liên quan đến bộ nhớ đệm từ phía emacs ..
Junnu
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.