Я размещаю частный репозиторий 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.
Однако это происходит только с новыми коробками. На писах, на которых все еще работает Джесси, я могу бежать sudo apt-get update
все, что я хочу, и это не дает мне никаких предупреждений об аутентификации.
Почему Pis, использующий 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 для краткого описания рассуждений и вот этот который отслеживает сломанные / исправленные (вышестоящие) репозитории.
это ответ на вопрос ubuntu исправил это для меня: редактировать ~/gnupg/gpg.conf
и добавить:
cert-digest-algo SHA256
digest-algo SHA256