Habilitando a pinentry do minibuffer com o Emacs 25 e o GnuPG 2.1 no Ubuntu Xenial

14

Eu tive que mergulhar um pouco e caçar através de documentação e fóruns, então achei que poderia fazer uma sessão de perguntas e respostas aqui para outras pessoas:

Como habilito o prompt da senha do GnuPG no minibuffer? O changelog do Emacs 25.1 diz:

** pinentry.el permite que a senha do GnuPG seja solicitada através do minibuffer em vez de uma caixa de diálogo gráfica, dependendo se o comando gpg é chamado pelo Emacs (ou seja, a variável de ambiente INSIDE_EMACS está definida). Esse recurso requer versões mais recentes do GnuPG (2.1.5 ou posterior) e Pinentry (0.9.5 ou posterior). Para usar esse recurso, adicione "allow-emacs-pinentry" em "~ / .gnupg / gpg-agent.conf" e recarregue a configuração com "gpgconf --reload gpg-agent".

Fazendo exatamente isso, recebo agora uma mensagem de erro e nem mesmo o prompt da senha gráfica.

Este é o GNU Emacs 25.2.2 no Lubuntu (Ubuntu Xenial) com o GnuPG 2.1.11.

Oliver Scholz
fonte

Respostas:

15

Você também tem que

  1. Ative explicitamente o modo de loopback para pinentry no seu gpg-agent.conf.
  2. Configure o epa para usar o loopback para pinentry.
  3. Inicie o servidor pinentry no emacs,

1. Ative o modo de pinentry e loopback do Emacs para gpg-agent

Coloque isso no seu ~ / .gnupg / gpg-agent.conf:

allow-emacs-pinentry
allow-loopback-pinentry

Em seguida, diga ao gpg-agent para carregar esta configuração com gpgconfum shell:

gpgconf --reload gpg-agent

2. Configure o EasyPG Assistant para usar o loopback para pinentry

No Emacs, quer fazer

M-x customize-group RET epa RET

Em seguida, defina “Epa Pinentry Mode” para 'loopback' e aplique.

Ou coloque isso no seu arquivo ~ / .emacs:

(setq epa-pinentry-mode 'loopback)

3. Inicie o servidor pinentry no Emacs.

No Emacs, faça

M-x pinentry-start RET

Isso inicia o servidor para a sessão atual. Para iniciá-lo em cada nova instância do Emacs, coloque isso no seu .emacs:

(pinentry-start)
Oliver Scholz
fonte
Eu implementei essa abordagem e, enquanto ela funciona usando o passe do emacs, não posso mais executar o passe da linha de comando. Este é o seu caso?
orion 22/06