Проблема с подписью в собственном подходящем хранилище
Я хочу создать собственный репозиторий для нашего приложения. Я создал мастер-ключ с подписывающим подразделом с помощью pgp и подписал пакет deb с помощью:
dpkg-sig --sign builder sample.deb
Затем я создаю репозиторий с репропро:
reprepro --ask-passphrase -b base includedeb all sample.deb
Представление создает необходимые подписанные файлы:
./conf:
distributions options
./db:
checksums.db contents.cache.db packages.db references.db release.caches.db version
./dists:
all
./dists/all:
InRelease main Release Release.gpg
./dists/all/main:
binary-amd64 binary-i386
./dists/all/main/binary-amd64:
Packages Packages.gz Release
./dists/all/main/binary-i386:
Packages Packages.gz Release
./pool:
main
./pool/main:
s
./pool/main/s:
sample
./pool/main/s/sample:
sample_2.2.48.9015_all.deb
Я устанавливаю открытый ключ на клиентском компьютере, но после установки пакета я получаю следующее сообщение:
WARNING: The following packages cannot be authenticated!
sample
Install these packages without verification? [y/N]
Зачем?
1 ответ
Подписание GPG сложно. Для APT-репозиториев существует два уровня подписей GPG:
- Подписи на самих пакетах, с
dpkg-sig
или илиdebsign
, - Подписи на метаданных репозитория.
Вы видите это сообщение, потому что APT не видит никакой подписи в метаданных вашего хранилища. Вы можете сделать это, добавив SignWith
в ваш конфиг Вы можете прочитать больше в полном сообщении в блоге, которое я написал здесь.
Вы можете проверить это SignWith
работал, ища файл с именем Release.gpg
или же InRelease
, Если вы найдете файл с именем InRelease
просмотрите содержимое файла и убедитесь, что подпись GPG находится внизу. Если это так, перезагрузка сгенерировала подпись должным образом. Имейте в виду, что репозитории с подписью GPG по-прежнему уязвимы для большого числа атак "человек посередине", если они не обслуживаются по HTTPS.
Я также рекомендовал бы проверить, что открытый ключ GPG был правильно импортирован в клиентскую систему, запустив apt-key list
, Если вы не видите ключ в списке, вы должны добавить его с apt-key add filename
,
Важно отметить, что Ubuntu и Debian не проверяют подписи GPG пакетов - по умолчанию это отключено и ужасно трудно работать. Я бы посоветовал избегать подписи GPG ваших пакетов.
Также обратите внимание, что вы должны распространять свой репозиторий по HTTPS, чтобы избежать множества ошибок безопасности (даже с подписями GPG).