Обновить ключ PGP в локальном репозитории apt.
Мы используемSonatype Nexus Repository Manager
для размещения репозиториев. GPG
Срок действия ключа одного из них недавно истек, и его необходимо обновить. Я думал, что будет достаточно сгенерировать новые пары ключей (как описано в документации официального сайта), вставить новый закрытый ключ через пользовательский интерфейс Nexus и новую парольную фразу, а затемapt-key add
новый открытый ключ в клиентской системе, и все будет хорошо. Вместо этого происходит то, что все еще говоритNO_PUBKEY <old_id>
. Я понятия не имею, откудаapt
берет информацию о том, что он пропускает старый ключ и не «синхронизирует» новый ключ. Я также пытался удалить содержимое/var/lib/apt/lists/
каталог перед вызовомapt update
. Что мне не хватает?
РЕДАКТИРОВАТЬ: все запускается в чистом докере, куда добавляется только новый ключ.apt-key add public.gpg.key
и новый репозиторий для/etc/apt/sources.list
,echo "deb <repo_url> bionic main" >> /etc/apt/sources.list
1 ответ
Мне удалось решить проблему. Репозиторий nexus apt создает две папки. Одного зовут, другого зовутpackages
. Вmetadata
папка с файламиRelease
,InRelease
иRelease.gpg
создаются. Они не восстанавливаются автоматически при изменении ключа в пользовательском интерфейсе. Чтобы принудительно восстановить эти файлы, необходимо удалить папку и загрузить пакет. Это приведет к регенерации папки метаданных со всеми соответствующими файлами в ней. После этой операции ключи работают.