Автоматически подписывать файлы пакетов из debuild и загружать их с помощью dput

Я создал исходный пакет для своей библиотеки, над которой я работаю. Я использую debuild для его сборки, а затем могу успешно загрузить его с помощью dput.

Теперь я хочу настроить это так, чтобы я мог сделать это автоматически от Дженкинса. Основная проблема, с которой я сталкиваюсь - это подписание файлов .dsc и .changes. Я пытаюсь подписать пакеты с помощью gpg, а не debuild сделать это. Таким образом, я могу автоматически подписывать файлы с опцией gpg --passphrase-fd 0.

Поэтому я использую debuild с опциями -uc и -us, а затем очищаю файлы с помощью gpg. Но когда я делаю это, он создает отдельные .dsc.asc и source.changes.asc. Затем, когда я пытаюсь загрузить файл с помощью dput, я получаю сообщение об ошибке

Checking signature on .changes
gpg: no valid OpenPGP data found.
gpg: the signature could not be verified.
Please remember that the signature file (.sig or .asc)
should be the first file given on the command line.

. Это может указывать на то, что мне следует указать файл .asc в качестве аргумента для dput, но я не могу получить это на работу.

0
задан 3 December 2012 в 04:34

2 ответа

Простой ответ: ежедневные сборки на Launchpad, они делают все это для вас довольно безопасно.

Если вы хотите загружать исходный код из Jenkins, то я предлагаю создать ключ только для этой работы в Jenkins. Наличие парольной фразы не улучшит безопасность, если работа Дженкинса должна будет знать парольную фразу, так что можно просто оставить ее незащищенной.

Если вы действительно хотите подписать файлы .dsc и .changes от руки, подпишите их с помощью gpg --clearsign и переименуйте файлы .asc поверх оригиналов.

0
ответ дан 3 December 2012 в 04:34

Я нашел следующее решение с debsign и опцией -p:

  • использовать debuild без подписи, как вы упомянули
  • использовать тогда debsign с опцией -p, задающей используемую фразу-пароль, например,

    debsign \
      -p'gpg --passphrase-file /home/myname/my_passphrase_file.txt --batch --no-use-agent'\
      -S -kMYKEYID package_source.change
    

По-прежнему возникают некоторые другие проблемы, но эта часть выглядит как работающая. Подписание файлов непосредственно с помощью GPG не работает, так как контрольные суммы, вычисленные во время debuild, изменены.

Я всегда предпочитаю хранить ключи с парольной фразой.

0
ответ дан 3 December 2012 в 04:34

Другие вопросы по тегам:

Похожие вопросы: