Проблема с подписью в собственном подходящем хранилище

Я хочу создать собственный репозиторий для нашего приложения. Я создал мастер-ключ с подписывающим подразделом с помощью 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:

  1. Подписи на самих пакетах, с dpkg-sig или или debsign,
  2. Подписи на метаданных репозитория.

Вы видите это сообщение, потому что APT не видит никакой подписи в метаданных вашего хранилища. Вы можете сделать это, добавив SignWith в ваш конфиг Вы можете прочитать больше в полном сообщении в блоге, которое я написал здесь.

Вы можете проверить это SignWith работал, ища файл с именем Release.gpg или же InRelease, Если вы найдете файл с именем InReleaseпросмотрите содержимое файла и убедитесь, что подпись GPG находится внизу. Если это так, перезагрузка сгенерировала подпись должным образом. Имейте в виду, что репозитории с подписью GPG по-прежнему уязвимы для большого числа атак "человек посередине", если они не обслуживаются по HTTPS.

Я также рекомендовал бы проверить, что открытый ключ GPG был правильно импортирован в клиентскую систему, запустив apt-key list, Если вы не видите ключ в списке, вы должны добавить его с apt-key add filename,

Важно отметить, что Ubuntu и Debian не проверяют подписи GPG пакетов - по умолчанию это отключено и ужасно трудно работать. Я бы посоветовал избегать подписи GPG ваших пакетов.

Также обратите внимание, что вы должны распространять свой репозиторий по HTTPS, чтобы избежать множества ошибок безопасности (даже с подписями GPG).

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