Как получить другую парольную фразу для подраздела gpg?
Мне нужно автоматизировать процесс развертывания, и инструмент автоматически подпишет артефакты выпуска. У моего кольца ключей есть первичный ключ, который я использую только для создания подразделов, и два подраздела. Один подключ для подписи и один для шифрования.
В настоящее время существует одна парольная фраза для всех ключей. Я не хочу указывать эту парольную фразу в файле конфигурации, так как это также может поставить под угрозу первичный ключ.
Поэтому я решил установить другую парольную фразу для подключа, выполнив:
$ gpg --edit-key [subkey-id]
gpg> passwd
gpg> save
Но это изменило парольную фразу и для других ключей.
Как я могу установить отдельную фразу-пароль для отдельных ключей?
2 ответа
Настройка отдельных парольных фраз для подразделов невозможна в GnuPG. Но есть обходной путь, который в этом случае выглядит даже как хорошая практика:
Экспорт подключа по выбору (в этом примере подключ имеет идентификатор
0xDEADBEEF
). Не забывайте восклицательный знак, он гарантирует, что GnuPG действительно работает с самим подразделом, а не с первичным ключом, которому он принадлежит!gpg --export-secret-subkeys 0xDEADBEEF! >subkeys.pgp
К подключу будут подключены открытый первичный ключ и закрытый первичный "ключ-заглушка", но не сам закрытый первичный ключ.
Импортируйте подраздел в другой домашний каталог GnuPG. В примере предполагается, что вы находитесь в корневом каталоге вашего проекта и у вас есть папка
etc
для таких вещей, как этот брелок там.gpg --homedir ./etc/gnupg --import subkeys.pgp
Измените парольную фразу разделенного подраздела.
gpg --homedir ./etc/gnupg --edit-key 0xDEADBEEF
Вместо использования вашего "обычного" набора ключей всегда обращайтесь к отдельному каталогу GnuPG, как указано выше.
В качестве альтернативы вы можете рассмотреть возможность создания ключа проекта, который вы подписываете своим собственным ключом. Это может иметь преимущество в том, что другие участники / пользователи также могут подписывать ключ (и, таким образом, удостоверять, что это действительно ключ, используемый для проекта), и передача проекта может быть проще в случае, если кто-то другой возьмет на себя обслуживание.
Очень устаревший (2013) почтовый архив gnupg.org объясняет неловкий обходной путь для создания отдельного пароля для подраздела.
Это подразумевает, что ограничение находится не в структуре данных набора ключей (т. Е. В группе основных подразделов), а только в программном интерфейсе для создания и изменения набора ключей.
Цитата из ссылки:
Привет,
возможно ли иметь главный ключ и несколько подключей, причем подключи имеют другую (например, более короткую) ключевую фразу, чем главный ключ?
Вероятно, вы ищете автономный основной ключ (см. --Export-secret- subkeys). Но ответ: да. gpg-agent не заботится о подключении ключей. Он запрашивает даже один и тот же пароль несколько раз (для разных компонентов одного и того же ключа).
Но GnuPG не поддерживает это напрямую.
1) Экспорт секретного ключа (--export-secret-keys без --armor)
2) изменить пароль
3) Экспорт снова (в другой файл, конечно)
4) Используйте gpgsplit для обоих файлов (в разных каталогах). Результат выглядит так:
000001-005.secret_key 000002-013.user_id 000003-002.sig 000004-007.secret_subkey 000005-002.sig
5) Теперь вы смешиваете компоненты двух групп: mkdir комбинированный mv a / 000001 * a / 000002 * a / 000003 * комбинированный / mv b / 000004 * b / 000005 * комбинированный / cd комбинированный / cat *> different_passphrases.gpg
6) Удалить ключ из секрета: --delete-secret-key
7) Импортируйте новый: gpg --import different_passphrases.gpg
Хауке Лагинг
Я лично не подтвердил эту операцию - просто сообщил, что я прочитал.
Отсутствие спецификации и обсуждения в документации GnuPG по этой важной теме вызывает разочарование.
Даже если этот вопрос довольно старый, я хочу поделиться решением этой проблемы, с которой я тоже столкнулся.
Проблема: я хотел иметь отдельную парольную фразу для первичного ключа, которую я использую только для сертификации / создания [C] других суб ключей и прикрепленных суб ключей [S,E,A].
В начале есть только одна фраза-пароль для всех ключей, т.е. первичный и дополнительный ключи.
Я сделал резервную копию главного ключа в другом месте, выполнив:
$ gpg --list-secret-keys --with-keygrip
который показал мне клавиатуру (имя файла ключа под
~/.gnupg/private-keys-v1.d/<your-keygrip>.key
) мастер-ключа.
Затем я переместил этот ключевой файл (и соответствующий сертификат отзыва) в другое место для резервной копии и, наконец, удалил ключ из
~/.gnupg/private-keys-v1.d/<your-keygrip>.key
.
(Сертификат отзыва находится под
~/.gnupg/openpgp-revocs.d/<your-keygrip>.rev
)
После выпуска
gpg --list-secret-keys
я мог видеть
sec#
на первичном ключе, что указывает на то, что ключа больше нет:
sec# rsa4096/0x123123123123123 2018-02-01 [C] [expires: 2019-02-01]
Key fingerprint = 123 123 123 123 123 123 123 123 123 123
Я только что отредактировал этот ключ:
gpg --edit-key <your-key-id>
gpg> passwd
gpg> save
Это запросит парольную фразу для каждого подключа, а затем позволит вам изменить ее.
В конце концов, у меня есть (более простая) кодовая фраза для моих дополнительных ключей, в то время как мой первичный ключ хранится вне сайта, защищенный начальной (более сильной) кодовой фразой.
Изменить: имейте в виду, что это работает только с GnuPG 2.1 и новее! В более старых версиях GnuPG вам придется экспортировать все свои ключи (первичный + вторичный), удалить их, а затем повторно импортировать только дополнительные ключи. Только начиная с версии 2.1 можно удалить только первичный ключ!