如何配置 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 已被注释掉,因为我在各个网站上都找到了相关提示,但我怀疑这是 gpg (1) 的旧设置,而不是 gpg2 的旧设置。

我尝试将 no-use-agent 添加到 gpg.conf 中,得到以下结果:

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,这当然是不安全的,具体取决于您的使用情况。如果您正在执行编程工作,那么它可能比键入标准输入更方便。

相关内容