Я пытаюсь использовать 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
или другие экземпляры моего сценария?
Подробности
Чтение 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.
Версии: gpg 2.1.18 в Debian 9 / stretch / stable