Как избежать проблем с gpg-agent при запуске из скриптов - gpg2 - PullRequest
0 голосов
/ 02 октября 2018

Я пытаюсь использовать 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

...