O que está funcionando
Meu pinentry gpg-agent funciona bem em X. Eu posso rodar
echo "test" | gpg2 -ase --default-recipient-self | gpg2
para armazenar em cache minhas senhas e depois executar killall gpg-agent -1
para liberá-las.
Por padrão, ele abre o pinentry-gtk (pelo que parece) e solicita minha senha.
O que não está funcionando
No entanto, se eu tentar executar o mesmo comando sem um servidor X, parece que o gpg2 está interrompido (sem prompt ou qualquer coisa). Se eu matá-lo, então eu posso ver que há também um processo pinentry
que continua a existir, mas não em qualquer lugar útil.
O que eu espero que aconteça
Espero que a execução de gpg2
sem um servidor X me dê um prompt de xingamentos de pinagem, da mesma forma que pass
faz. Além disso, parece que lembro que, com a versão mais antiga do gpg, ele apenas me solicitou a senha do stdin, e não sei bem por que isso também não acontece.
O que tentei
Eu tentei as seguintes "correções", mas nenhuma delas fez com que o comando mencionado fosse executado corretamente. De fato, forçar curses de pinagem faz com que o comando mencionado falhe mesmo com o ambiente X ( pass
ainda funciona).
-
Definindo pinentry-program /usr/bin/pinentry-curses
em 'gpg-agent.conf' '
-
Iniciando o gpg-agent assim: gpg-agent --daemon --keep-tty --use-standard-socket --pinentry-program=/usr/bin/pinentry-curses
-
usando uma variável de ambiente: export PINENTRY_USER_DATA="USE_CURSES=1”
Informação de fundo
Eu tenho um arquivo de configuração .gpg-agent quase vazio; tudo o que tem são tempos limite de cache.
Estou ligando para o gpg-agent diretamente no login como eval $(gpg-agent --daemon)
. Eu não estou inicializando no X, então eu uso o getty para logar.