ポップアップ ウィンドウではなくコンソールでパスフレーズを要求するように gpg2 を設定するにはどうすればよいですか?

ポップアップ ウィンドウではなくコンソールでパスフレーズを要求するように gpg2 を設定するにはどうすればよいですか?

私はGpg4winを設定して、パスフレーズを要求するポップアップウィンドウを使用しないようにしようとしています。のみコマンド プロンプトから gpg2 を使用すると、ポップアップ ウィンドウによってコマンド プロンプトからフォーカスが奪われ、その後フォーカスが戻らないため、煩わしく、混乱を招きます。

これは Windows 10 上です。

gpg-agent.conf ファイルを次の内容で編集してみました。

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

-w32 などの末尾がない pinentry.exe がコンソールで使用されることを期待していますが、テスト ファイルに署名しようとすると、数秒間そのままになってから出力されます。

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

パスとスラッシュを引用符で囲んで追加しようとしたので、次のすべてを試しました。

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

私の gpg.conf ファイルでは、use-agent 設定がすでにコメント アウトされています。これは、さまざまな Web サイトでヒントを見つけたためですが、これは gpg (1) の古い設定であり、gpg2 の設定ではないと思われます。

代わりに gpg.conf に no-use-agent を追加してみたところ、次のようになりました:

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

それで、これは本当に可能なのでしょうか?

基本的に私が欲しいのは、次のコマンドです:

gpg2 --sign test.md

続行する前に、同じコマンド プロンプト ウィンドウでパスフレーズの入力を求める必要があります。

答え1

私は Gpg4win v3.1.15 を使用しましたが、appdata ディレクトリをデフォルトのホーム ディレクトリとして使用するようです。ホーム ディレクトリが異なる場合は、gpg.conf をそこに保存する必要があります。

内容が含まれたファイルがまだ存在しない場合は作成します%appdata%\gnupg\gpg.conf:

pinentry-mode loopback

これを有効にすると、コマンド ライン プロンプトが表示されます。

さらに、この同じ設定により、ピンをコマンド ライン オプションのパスフレーズとして渡すことができます (例 )。gpg --passphrase 12345 --decryptこれは、使用例によっては安全ではない場合があります。プログラムによる操作を行う場合は、標準入力に入力する代わりに便利かもしれません。

関連情報