Como configurar o gpg2 para solicitar senha no console em vez de em uma janela pop-up?

Como configurar o gpg2 para solicitar senha no console em vez de em uma janela pop-up?

Estou tentando configurar o Gpg4win para não usar a janela pop-up para solicitar uma senha. EUapenasuse gpg2 no prompt de comando, o que significa que a janela pop-up é irritante e perturbadora, pois tira o foco do prompt de comando e não o devolve depois.

Isso está no Windows 10.

Tentei editar o arquivo gpg-agent.conf com o seguinte conteúdo:

pinentry-program C:\...path-to\pinentry.exe

Na esperança de que o pinentry.exe sem -w32 ou final semelhante seja aquele que será usado no console, mas ao tentar assinar um arquivo de teste, ele fica lá por alguns segundos e depois exibe:

$ gpg2 --sign test.md
gpg: problem with the agent: No pinentry
gpg: no default secret key: Operation cancelled
gpg: signing failed: Operation cancelled

Tentei adicionar aspas ao redor do caminho e barras, então tentei todos os seguintes:

pinentry-program 'C:\...path-to\pinentry.exe'
pinentry-program C:/...path-to/pinentry.exe
pinentry-program file://C:/...path-to/pinentry.exe

No meu arquivo gpg.conf a configuração use-agent já está comentada, pois encontrei uma dica em vários sites sobre mas suspeito que esta seja uma configuração mais antiga para gpg (1) e não para gpg2.

Tentei adicionar no-use-agent ao gpg.conf e consegui o seguinte:

gpg: C:/.../gpg.conf:202: obsolete option "--no-use-agent" - it has no effect

Então isso é possível?

Basicamente o que eu quero é que este comando:

gpg2 --sign test.md

Devo solicitar minha senha na mesma janela do prompt de comando antes de continuar.

Responder1

Usei Gpg4win v3.1.15, parece usar o diretório appdata como diretório inicial padrão. Se o seu diretório inicial for diferente, o gpg.conf deverá ser armazenado lá.

Crie um arquivo se ele ainda não existir %appdata%\gnupg\gpg.confcom conteúdo:

pinentry-mode loopback

Se você ativar isso, receberá um prompt de linha de comando.

Além disso, essa mesma configuração permite que você passe o pino como senha de opção de linha de comando, por exemplo gpg --passphrase 12345 --decrypt, o que obviamente não é seguro dependendo do seu caso de uso. Se você estiver fazendo coisas programáticas, pode ser útil em vez de digitar a entrada padrão.

informação relacionada