我需要弄清楚如何从命令行解密,而无需 gpg 要求弹出窗口输入密码,我想在命令行中定义它?
有没有可能不用创建批处理文件
请帮忙
答案1
GnuPG 是在命令行还是在 GUI 提示符中询问取决于是否gpg-agent
使用以及pinentry
选择了哪种实现。遗憾的是,没有简单的方法可以配置 GnuPG 在命令行上使用时使用命令行提示符,否则使用 GUI 提示符,正如我在“GnuPG pinentry 取决于 GUI 存在”。另外,我不确定 Windows 是否有可用的仅命令行 pinentry 实现。
如果您使用 GnuPG 1,您可以简单地选择--no-use-agent
返回到命令行。如果您使用的是 GnuPG 2.0,则需要提供额外的参数--batch
,GnuPG 2.1 要求使用gpg-agent
,并且您必须返回到上面链接中建议的解决方法。
gpg-preset-passphrase
另一个解决方法是在调用之前使用gpg
预设密码gpg-agent
,但您需要进行gpg-agent
适当的配置,而且在 Windows 下似乎gpg-preset-passphrase
不可用,但是也可以通过运行来实现gpg-connect-agent
。这在编写脚本时可能是可行的,但对于日常的命令行使用来说似乎不是一个合理的选择。
总而言之,您最好配置gpg-agent
为暂时缓存密码,并接受不时在 GUI 上询问您。