我正在尝试使用
我已经导出了一个无需密码的
我不想干扰当前用户的
我以为这很容易。将
我能否将所有内容保留在
详情请见gpg文档。
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
下?或者我该如何安全地从shell脚本中使用gpg
,而不影响用户的配置或使用gpg
或其他我的脚本实例?详情请见gpg文档。
--use-agent
--no-use-agent
This is dummy option. gpg always requires the agent.
而gpg-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
GNUPGHOME
。来自GnuPG on ArchWiki:“_如果您使用非默认的GnuPG主目录,则需要编辑所有套接字文件以使用gpgconf --list-dirs
的值。套接字名称使用非默认GnuPG主目录的哈希,因此您可以硬编码它而不必担心它会更改。_”在这种情况下,您无需担心套接字路径冲突。 - Franklin Yu$GNUPGHOME
,你实际上已经让它工作了吗? - Peter V. Mørch/run/user/1001/gnupg/d.19dny8pcrzpq1uj8ykkupwfr/
作为套接字目录。另一个例子,GNUPGHOME=/tmp/gnupg gpgconf --list-dirs socketdir
给我返回了/run/user/1001/gnupg/d.p63as1i1pzzqkuqzs6d175fn
。 - Franklin Yu