$ DISPLAY= gpg2 --yes --batch --no-tty < file.gpg
┌─────────────────────────────────────────────────────┐
│ Enter passphrase │
│ │
│ │
│ Passphrase ________________________________________ │
│ │
│ │
| <OK> <Cancel> │
└─────────────────────────────────────────────────────┘
如果没有,DISPLAY=
它会显示 GUI 窗口。无论如何它都会等待输入,从而中断循环。
我如何让 gpg2 仅使用 gpg-agent 并且永远不会中断处理来询问任何事情?
提供假货--passphrase
会让代理商删除钥匙。
答案1
您可以启用 pinentry 回送模式,gpg-agent.conf
并使用--pinentry-mode cancel
(或error
,取决于您的要求)作为 GnuPG 的参数。这将回送至 GnuPG,而不是某个前端 pinentry 实现,然后返回错误以gpg-agent
模拟按下了取消按钮。
答案2
解决方法:根本不要使用 gpg-agent,--passphrase-file
而是使用:
killall gpg-agent
gpg2 -q --batch --no-tty --passphrase-file=/tmp/passphrase --decrypt file.gpg