Я хочу создать несколько пакетов deb, но я не знаю, как работает «подписывание» пакетов. Поэтому мне было интересно, как создать подписанный пакет deb.
Я хочу создать несколько пакетов deb, но я не знаю, как работает «подписывание» пакетов. Поэтому мне было интересно, как создать подписанный пакет deb.
Ответы:
Подписание пакетов в системах Ubuntu / Debian довольно грязное. Теоретически, подписание пакета deb позволяет лицу, получающему ваш пакет, проверить, что пакет не был изменен после того, как вы подписали его. На самом деле, проверка подписи очень сложна в настройке и по умолчанию отключена. Если пользователь не выполнит кучу настроек локально, он не будет проверять подпись при установке пакета.
Чтобы подписать пакет, вы можете использовать: debsigs или dpkg-sig. Подписи несовместимы друг с другом, поэтому вам необходимо убедиться, что пользователь использует соответствующий инструмент на принимающей стороне для проверки подписей.
dpkg-sig проще в использовании как для вас, так и для пользователя, но debsigs - это инструмент со встроенной поддержкой (которая по умолчанию отключена) в Ubuntu и Debian.
Я написал сообщение в блоге, содержащее все технические подробности подписания и проверки пакетов с исходным кодом (файлы .dsc), двоичных пакетов (.deb) и самих репозиториев пакетов APT: http://blog.packagecloud.io/eng/2014/ 10/28 / HOWTO-GPG-знак-Verify-DEB-пакеты-apt-репозитории /
Подписание пакетов в Debian / Ubuntu обычно осуществляется с помощью файлов .changes. При создании пакета вы, как правило, получаете файл .changes, в котором перечислены результаты сборки (исходные и / или двоичные пакеты) и их контрольные суммы. Когда вы подписываете пакеты, это обычно тот файл, который вы подписываете (таким образом, позволяя проверить целостность пакета посредством его контрольной суммы).
Самый простой способ подписать файл .changes - это использовать debsign
debsign hello_1.0_amd64.changes
Это происходит автоматически , если у вас есть первичный ключ вы GnuPG брелка, и вы бежите dpkg-buildpackage
или debuild
без -us
и -uc
переключателей.