![我如何让 gpg2 跳过文件而不是要求输入密码?](https://linux22.com/image/1512227/%E6%88%91%E5%A6%82%E4%BD%95%E8%AE%A9%20gpg2%20%E8%B7%B3%E8%BF%87%E6%96%87%E4%BB%B6%E8%80%8C%E4%B8%8D%E6%98%AF%E8%A6%81%E6%B1%82%E8%BE%93%E5%85%A5%E5%AF%86%E7%A0%81%EF%BC%9F.png)
$ 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