Мое частное хранилище пакетов проверяет OK в Ubuntu 14 LTS, но приводит проверку к сбою в Ubuntu 18 LTS.
Мне не удалось найти различие в релизах Ubuntu, которое вызывает differerent поведение.
# Hostname, User, Password, Directory, Distribution, Component and Signature are my
# private values in the following code snippets:
apt-get update
Err:2 http://Hostname/Directory Distribution InRelease
The following signatures were invalid: Signature
способная конфигурация:
cat /etc/apt/sources.list.d/Distribution.list
deb [arch=amd64] http://User:Password@Hostname/Directory/ Distribution Component
Загрузка InRelease
файл и проверка его подписи вручную успешно выполняются (тот же результат на Ubuntu 14 и Ubuntu 18):
wget --server-response -O- http://User:Password@Hostname/Directory/dists/Distribution/InRelease > ./InRelease
gpg --verify --keyring /etc/apt/trusted.gpg.d/Distribution.gpg ./InRelease
gpg: Signature made ...
gpg: using RSA key ...
gpg: Good signature from "..." [unknown]
gpg: WARNING: This key is not certified with a trusted signature!
gpg: There is no indication that the signature belongs to the owner.
Primary key fingerprint: SameSignatureAsInTheAptGetOutputAbove
Как я могу отладить это к первопричине?
Ошибка вызывается тихим отклонением небезопасного SHA 1 подпись в новом apt
версия в Ubuntu 18. Это кажется этим ни один gpg
ни apt
могут дать явное предупреждение об устаревшем алгоритме сигнатуры. (Если кто-либо знает, как произвести такое предупреждение, прокомментируйте здесь.)
Обходное решение должно поместить digest-algo sha256
в ~/.gnupg/gpg.conf
в aptly
сервер сборки пакета. Найденный на https://github.com/aptly-dev/aptly/pull/366. SHA 256 произведенных подписей совместим с apt
в Ubuntu 14 и 18.
Долгосрочное решение состоит в том, чтобы обновить aptly
версия, которая создает репозиторий.