Как создать "подписанный" пакет deb
Я хочу создать несколько пакетов deb, но я не знаю, как работает "подписывание" пакетов. Поэтому мне было интересно, как создать подписанный пакет deb.
2 ответа
Подписание пакетов в системах Ubuntu/Debian довольно грязное. Теоретически, подписание пакета deb позволяет лицу, получающему ваш пакет, проверить, что пакет не был изменен после того, как вы подписали его. В действительности, проверка подписи очень сложна в настройке и по умолчанию отключена. Если пользователь не выполнит кучу настроек локально, он не будет проверять подпись при установке пакета.
Чтобы подписать пакет, вы можете использовать: debsigs или dpkg-sig. Подписи несовместимы друг с другом, поэтому вам необходимо убедиться, что пользователь использует соответствующий инструмент на принимающей стороне для проверки подписей.
dpkg-sig проще в использовании как для вас, так и для пользователя, но debsigs - это инструмент со встроенной поддержкой (которая по умолчанию отключена) в Ubuntu и Debian.
Я написал сообщение в блоге, содержащее все технические подробности подписания и проверки пакетов с исходным кодом (файлы.dsc), двоичных пакетов (.deb) и самих репозиториев пакетов APT: http://blog.packagecloud.io/eng/2014/10/28/howto-gpg-sign-verify-deb-packages-apt-repositories/
Подписание пакетов в Debian/Ubuntu обычно осуществляется с помощью файлов.changes. При создании пакета вы, как правило, получаете файл.changes, в котором перечислены результаты сборки (исходные и / или двоичные пакеты) и их контрольные суммы. Когда вы подписываете пакеты, это обычно тот файл, который вы подписываете (таким образом, позволяя проверить целостность пакета посредством его контрольной суммы).
Самый простой способ подписать файл.changes - это использовать debsign
debsign hello_1.0_amd64.changes
Это происходит автоматически, если у вас есть первичный ключ в цепочке ключей gnupg, и вы запускаете dpkg-buildpackage
или же debuild
без -us
а также -uc
переключатели.