Executando Múltiplos gpg-agent
s
O gpg-agent
do GnuPG pode ser configurado para usar diferentes soquetes antes do GnuPG 2.1; você poderia ter usado diferentes gpg-agent
s em execução em paralelo com diferentes configurações (implementações de pinentry).
Com o GnuPG 2.1, isso não é mais possível. O GnuPG desde 2.1 sempre usa um caminho de soquete fixo.
Comutação de pinças
A única possibilidade limpa para ativar tal recurso é provavelmente escrever uma implementação de "switch" de pinentry, decidindo qual pinagem real chamar dependendo de ser chamada de uma linha de comando ou da GUI (por exemplo, dependendo de qual DISPLAY
ou Variáveis tty
estão definidas).
Modo de Pinagem de Loopback
Uma alternativa seria usar o recurso de pinback de loopback, que é desativado em gpg-agent
por padrão por motivos de segurança. O loopback de Pinentry terá gpg-agent
query gpg
para a frase secreta em vez da consulta de senha de pinagem fora de banda. Isso potencialmente abre problemas de segurança, já que o aplicativo GnuPG bastante grande e complexo (com maior chance de vulnerabilidades) obtém acesso à senha e, portanto, à chave privada, que de outra forma estaria limitada à implementação gpg-agent
e pinentry.
Para fazer isso de qualquer maneira, adicione uma linha allow-loopback-pinentry
em ~/.gnupg/gpg-agent.conf
, killall gpg-agent
(para que ela seja reiniciada com a opção ativada na próxima vez que o GnuPG desejar usá-la). Quando você quiser usar a pinagem da GUI, inicie o GnuPG normalmente; para operações de linha de comando, chame gpg21 --pinentry-mode loopback
(que, claro, pode ser um alias para gpg21
).