GnuPG 2,gpg-agent
и шлейф Pinentry
GnuPG 2.0 и новее рассмотрим только --passphrase-...
-варианты, когда --batch
также применяется. От man gpg
:
обратите внимание, что эта фраза используется, только если параметр --batch
также
с учетом. Это отличается от GnuPG версии 1.x.
таким образом, рабочая команда для GnuPG 2.0 будет:
gpg --batch --passphrase-fd 0 --import <path>
кроме того, начиная с GnuPG 2.1,gpg-agent
обрабатывает все секретный ключ операции, а также запрашивает парольную фразу. Идея этого состоит в том, чтобы иметь небольшое базовое приложение, обрабатывающее самые критические биты криптографии, и имеющее (сравнительно) большой GnuPG с потенциально большим количеством ошибок и проблем безопасности, выполняющих все остальные вещи. По умолчанию gpg-agent
не будет запроса gpg
пароль, но попробовать спросить непосредственно (который будет явно не в автоматической сборки). Есть последний побег, хотя: вы можете использовать --pinentry-mode loopback
в сделай gpg-agent
запрос gpg
для парольной фразы, но поскольку это влияет на безопасность, как обсуждалось ранее, необходимо также настроить gpg-agent
разрешить замыкание на себя pinentry.
добавить следующую строку ~/.gnupg/gpg-agent.conf
:
allow-loopback-pinentry
теперь вы можете использовать следующую команду в GnuPG 2.1 и новее:
gpg --batch --pinentry-mode loopback --passphrase-fd 0 --import <path>
, проходящей в gpg-agent
гнездо
лучшим вариантом, чем импорт закрытых ключей в контейнеры Docker, обычно является закрытый ключ на хосте, а затем передача gpg-agent
гнездо в контейнер Docker. Таким образом, критические секреты никогда не попадут в контейнер Docker, и вы можете быть уверены, что они не будут сохранены в слоях изображений и опубликованы случайно.