Я размещаю частный репозиторий Debian для некоторого пользовательского кода Raspberry Pi.Изначально я создал программное обеспечение на Raspbian Jessie (версия 8), сгенерировал ключ GPG, который использую для подписи репозитория, и запустил sudo apt-key add ...
на всех устройствах, чтобы убедиться, что они сможет аутентифицировать мой репозиторий. Это работало нормально, пока недавно я не добавил несколько новых устройств под управлением Raspbian Stretch (версия 9). Несмотря на то, что я добавил к ним тот же самый ключ GPG, вот результат, который я вижу, когда запускаю sudo apt-get update
:
W: GPG error: http://url.of.private.repo stable Release: The following signatures were invalid: 95F9B44CE35F40B759D59C2A77E4184C595493B1
W: The repository 'http://url.of.private.repo stable Release' is not signed.
N: Data from such a repository can't be authenticated and is therefore potentially dangerous to use.
N: See apt-secure(8) manpage for repository creation and user configuration details.
Однако это происходит только на более новых устройствах. На Pis, на которых все еще запущена Jessie, я могу запускать sudo apt-get update
все, что захочу, и это не дает мне никаких предупреждений об аутентификации.
Почему Пи, работающие с Stretch, думают, что ключ GPG недействителен, хотя все они используют один и тот же ключ? Я мог бы сгенерировать новый ключ в ящике, на котором запущен Stretch, но я надеюсь избежать добавления новых ключей GPG в каждый ящик Jessie. (Прямо сейчас у меня есть только несколько новых ящиков, на которых работает Stretch, тогда как около 200 ящиков все еще работает с Jessie.) Что я могу сделать, чтобы убедить модули Stretch в том, что этот ключ GPG действительно действителен?
В соответствии с запросом ниже приведены выходные данные команды sudo apt-get -o Debug :: Acquire :: gpgv = true update
на обеих платформах:
Согласно комментариям:
SHA1
считается слабым, поэтому Debian решил переключиться на более сильные алгоритмы хеширования еще в марте 2016 г. .
Следовательно, при работе с репозиториями APT: Устарело SHA1
и переключитесь (как минимум) на SHA256
.
См. эту статью вики Debian для краткого обзора рассуждений и эту ], который отслеживает неисправные / исправленные (вышестоящие) репозитории.
Этот ответ на ask ubuntu исправил это для меня: отредактируйте ~ / gnupg / gpg.conf
и добавьте:
cert-digest-algo SHA256
digest-algo SHA256