Mengaktifkan pinentry minibuffer dengan Emacs 25 dan GnuPG 2.1 di Ubuntu Xenial

14

Saya harus melakukan beberapa penyelaman dan berburu melalui dokumentasi dan forum, jadi saya pikir saya mungkin juga melakukan Q&A di sini untuk orang lain:

Bagaimana cara mengaktifkan frasa sandi GnuPG yang diminta di minibuffer? Changelog The Emacs 25.1 mengatakan:

** pinentry.el memungkinkan frasa sandi GnuPG diminta melalui minibuffer alih-alih dialog grafis, tergantung pada apakah perintah gpg dipanggil dari Emacs (yaitu, variabel lingkungan INSIDE_EMACS diatur). Fitur ini memerlukan versi GnuPG yang lebih baru (2.1.5 atau lebih baru) dan Pinentry (0.9.5 atau lebih baru). Untuk menggunakan fitur ini, tambahkan "allow-emacs-pinentry" ke "~ / .gnupg / gpg-agent.conf" dan muat ulang konfigurasi dengan "gpgconf --reload gpg-agent".

Melakukan hal itu, saya hanya mendapatkan pesan kesalahan sekarang dan bahkan tidak meminta kata sandi grafis.

Ini adalah GNU Emacs 25.2.2 di Lubuntu (Ubuntu Xenial) dengan GnuPG 2.1.11.

Oliver Scholz
sumber

Jawaban:

15

Kamu juga harus

  1. Aktifkan mode loopback untuk pinentry di gpg-agent.conf Anda.
  2. Konfigurasikan epa untuk menggunakan loopback untuk pinentry.
  3. Mulai server pinentry di emacs,

1. Aktifkan mode pinentry dan loopback Emacs untuk gpg-agent

Letakkan ini di ~ / .gnupg / gpg-agent.conf Anda:

allow-emacs-pinentry
allow-loopback-pinentry

Kemudian beri tahu gpg-agent untuk memuat konfigurasi ini dengan gpgconfsebuah shell:

gpgconf --reload gpg-agent

2. Konfigurasikan EasyPG Assistant untuk menggunakan loopback untuk pinentry

Di emacs, keduanya juga

M-x customize-group RET epa RET

Kemudian atur “Epa Pinentry Mode” ke 'loopback' dan terapkan.

Atau letakkan ini di file ~ / .emacs Anda:

(setq epa-pinentry-mode 'loopback)

3. Mulai server pinentry di Emacs.

Di Emacs, lakukan

M-x pinentry-start RET

Ini memulai server untuk sesi saat ini. Untuk memulainya di setiap instance Emacs baru, masukkan ini ke .emacs Anda:

(pinentry-start)
Oliver Scholz
sumber
Saya telah menerapkan pendekatan ini dan walaupun bekerja menggunakan pass dari dalam emacs saya tidak bisa lagi menjalankan pass dari baris perintah. Apakah ini kasusnya untuk Anda?
orion