Подписание проблемы с собственным способным репозиторием

Я хочу создать собственный репозиторий для нашего приложения. Я создал главный ключ с подписанием подраздела с pgp прежде, и я подписываю deb пакет с:

dpkg-sig --sign builder sample.deb

Затем я создаю repo с reprepro:

reprepro --ask-passphrase -b base includedeb all sample.deb

Reprepro создает необходимые файлы со знаком:

./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]

Почему?

2
задан 15 December 2016 в 13:09

1 ответ

Подписание GPG является сложным. Для репозиториев APT существует два слоя подписей GPG:

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

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

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

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

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

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

2
ответ дан 2 December 2019 в 03:43

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

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