我正在尝试使用脚本gpg
中--clearsign
的文件(用于 debian 打包目的)。
我有一个导出的无密码private-key.gpg
文件,并且想要:
gpg --clearsign -o output input
我不想弄乱当前用户的~/.gnupg
,或者/run/user/$(id -u)/gnupg
因为他们与我的脚本无关。此外,脚本可以同时在多个实例中运行,我不希望它们相互干扰。
我以为这很容易。设置$GNUPGHOME
到临时目录并完成它。但是我无法弄清楚如何gpg
在不弄乱用户标准配置的情况下在脚本中运行。似乎gpg
已经竭尽全力避免无法避免gpg-agent
并gpg-agent
坚持使用全局/硬编码路径。
我可以把所有东西都放在下面$GNUPGHOME
吗?或者我如何在gpg
不影响用户配置或使用gpg
我的脚本或其他实例的情况下安全地使用 shell 脚本?
细节
阅读gpg 文档我看到:
--use-agent
--no-use-agent
This is dummy option. gpg always requires the agent.
--use-standard-socket
--no-use-standard-socket
--use-standard-socket-p
Since GnuPG 2.1 the standard socket is always used.
These options have no more effect. The command gpg-agent
--use-standard-socket-p will thus always return success.
这个“标准套接字”大概在/run/user/$(id -u)/gnupg
- 所以看来我无法避免 gpg 弄乱用户对 gpg 的“正常”使用。
版本:Debian 9/stretch/stable 上的 gpg 2.1.18