#key #package #rpm #signature #gnupg
#Клавиша #пакет #rpm #подпись #gnupg
Вопрос:
При установке в системах CentOS 5 / Red Hat Enterprise Linux Server версии 5.6 / SuSE 11.2 пакеты, которые я создал и подписал, завершаются ошибкой со следующей ошибкой:
Подпись заголовка V4 RSA / SHA1: НЕПРАВИЛЬНАЯ, идентификатор ключа a2051fc7
«rpm -qip » и «rpm -v —checksig» выдают ту же ошибку.
«rpm -qip» и «rpm -v —checksig » на машине подписи показывают, что все в порядке. »
Чего мне не хватает? Ключ был сгенерирован в системе Ubuntu. Может ли это быть проблемой?
На установочном компьютере был выполнен «rpm —import «. Также был выполнен «gpg —import». «rpm -qi gpg-pubkey *», а также «gpg —list-keys» показывают, что ключ был установлен.
На машине подписи в ~/.rpmmacros выглядит следующим образом:
%_signature gpg
%_gpg_path /root/.gnupg
%_gpg_name Stealth Seeker <support@stealthseeker.com>
%__gpg /usr/bin/gpg
%__gpg_sign_cmd %{__gpg}
gpg --force-v3-sigs --digest-algo=sha1 --batch --no-verbose --no-armor
--passphrase-fd 3 --no-secmem-warning -u "%{_gpg_name}"
-sbo %{__signature_filename} %{__plaintext_filename}
Для подписи используется команда «rpm —resign *.rpm». Список ключей, которые у меня есть в системе подписи, выглядит следующим образом:
# gpg --list-keys
/root/.gnupg/pubring.gpg
------------------------
pub 2048R/D2051F97 2014-05-06
uid Stealth Seeker <support@stealthseeker.com>
sub 2048R/DE308A91 2014-05-06
# gpg --list-secret-keys
/root/.gnupg/secring.gpg
------------------------
sec 2048R/D2051F97 2014-05-06
uid Stealth Seeker <support@stealthseeker.com>
ssb 2048R/DE308A91 2014-05-06
Комментарии:
1. на какой версии компьютеров RedHat он работает? Я не верю, что подписи V4 работают на машинах эпохи CentOS 5, поэтому я не уверен, как это будет работать на машинах аналогичного возраста RedHat. Я считаю, что вам нужно принудительно использовать подписи V3 для использования с машинами с rpm этого возраста.
2. Это содержимое макроса где? На автограф-машине? Можете ли вы указать это в вопросе, чтобы вы могли правильно его отформатировать? Содержит ли импортированный вами ключевой файл gpg только один ключ или более одного (включая подразделы)?
3. Я только что импортировал открытые / закрытые ключи в систему RELS версии 5.6, указанный выше файл .rpmmacros, и попытался подписать rpm (версия 4.4.23). «Rpm -resign *.rpm» выдал «gpg: ПРЕДУПРЕЖДЕНИЕ: возобновлен стандартный ввод», что, согласно Интернету, не является проблемой. Однако «rpm -qip * rpm» выдал ту же ошибку: «Подпись заголовка V3 RSA / SHA1: BAD, идентификатор ключа d2051f97». Черт возьми.
4. Это не та же ошибка (обратите внимание
V3
на то, что там), но это означает, что ключ на самом деле может отсутствовать или установлен неправильно. Содержит ли ключевой файл более одного ключа (включая вложенные ключи)?5. Кроме «gpg —{list-keys,list-secret-keys}», я не знаю, как узнать, есть ли дополнительные ключи. При физическом просмотре экспортированных файлов закрытого и открытого ключей на файл приходится только один (1) ключевой блок. Результаты выполнения двух команд gpg перечислены в приведенном выше тексте. Для создания ключа использовалась команда «gpg —gen-key», используйте RSA, используйте 2048-битную и кодовую фразу.
Ответ №1:
Я считаю sub
, что проблема здесь в том, что ключ в выводе — это проблема.
Я полагаю, что вы столкнулись с этой известной ошибкой RPM при импорте файла с несколькими ключами gpg.
К сожалению, gpg не упрощает сортировку (поскольку вы не можете экспортировать без вложенных ключей), а rpm не позволяет обойти это (или даже увидеть проблему), поскольку он не знает, что он ошибается, и вы не можете заставить его предоставить вам информацию, которую вы хотели бынеобходимо подтвердить проблему.
Если вы экспортируете только первичный ключ из своей связки ключей (без вложенного ключа) и пытаетесь импортировать и подписывать / проверять с помощью этого, я считаю, что это сработает.
Комментарии:
1. Выполнив быстрый поиск в Google по «экспортировать первичный ключ gpg», я не смог найти ничего, кроме «gpg —export -a KEY_ID> MYORG-GPG-KEY.public», что я и сделал. У вас есть страница, на которой показано, как экспортировать только первичный ключ? Или флаг, который я должен использовать для экспорта первичного ключа?
2. @user2569618 Я не указал эту информацию, потому что у меня также не было хорошего способа сделать это. Когда я проводил тестирование с этим (когда мы столкнулись с подобными проблемами на работе). Я был вынужден скопировать связку ключей и вручную удалить вспомогательный ключ перед экспортом ключа для тестирования. (Я написал сценарии для выполнения всей работы за меня, поскольку я тестировал много типов и размеров ключей, но это работа, которая выполнялась.)
3. @user2569618 В качестве альтернативы, если вы просто хотите протестировать это (и / или не привязаны к вашему текущему ключу), вы можете попробовать воссоздать ключ gpg, обязательно выбрав любой вариант для RSA «только для подписи» (вместо RSA RSA или чего-то еще).