Главная
» LINUX
»
Как исправить ошибку GPG «NO_PUBKEY» в Ubuntu
Как исправить ошибку GPG «NO_PUBKEY» в Ubuntu
Ошибка NO_PUBKEY означает, что APT обнаружил репозиторий, но не может проверить подписанные метаданные пакета, поскольку отсутствует открытый ключ подписи этого репозитория. Определите источник, получите его ключ от издателя, проверьте полный отпечаток и свяжите его только с этим репозиторием Signed-By. Затем обновите APT. Не обходите проверку подписи, чтобы скрыть ошибку.
1. Определите репозиторий, в котором возникла ошибка.
Откройте терминал и выполните следующую команду:
sudo apt update
Обратите внимание на URL-адрес репозитория рядом с NO_PUBKEY. APT может отображать короткий идентификатор ключа, например ABCD1234EF567890. Он помогает определить отсутствующий ключ, но не доказывает, кому он принадлежит. Перед изменением настроек доверия подтвердите, какой источник программного обеспечения вызвал ошибку.
Выделенная строка указывает на репозиторий, ключ подписи которого APT не может проверить; URL-адрес и идентификатор ключа приведены в качестве примеров.
2. Получите и проверьте ключ издателя.
Используйте официальную страницу установки или место загрузки ключа владельца репозитория. Для PPA Launchpad подтвердите его владельца и архив на Launchpad. В документации Ubuntu добавление PPA осуществляется с помощью команды `<ключ>` add-apt-repository, которая устанавливает ключ:
sudo add-apt-repository ppa:OWNER/ARCHIVE
Замените OWNER/ARCHIVEна точный PPA с его официальной страницы. Для репозитория поставщика загружайте ключ только из инструкций поставщика. В этом примере используется URL-адрес-заполнитель; замените его опубликованным URL-адресом:
Сравните полный отпечаток пальца с тем, который поставщик услуг публикует по официальному каналу. Не продолжайте, если он отличается или его невозможно проверить.
Воспользуйтесь инструкциями издателя, чтобы найти ключ и его отпечаток.
3. Храните ключ в отдельном брелке.
Для ключа в формате ASCII .ascсоздайте каталог для связки ключей, преобразуйте ключ и разрешите APT его чтение:
Если издатель предоставляет двоичный .gpgключ, сохраните его /etc/apt/keyringsи установите для него права доступа 0644; не удаляйте его. Назовите файл в честь издателя, чтобы вы могли идентифицировать его позже.
4. Свяжите ключ с этим репозиторием.
Отредактируйте существующий исходный файл репозитория, обычно расположенный в папке `<путь к файлу>` /etc/apt/sources.list.d/. Сохраните URI, пакет Ubuntu и компоненты от издателя. Замените указанные ниже заполнители и не создавайте дубликат исходного файла.
В .sourcesфайле deb822 добавьте Signed-Byполе:
Types: deb
URIs: https://repo.example/ubuntu
Suites: YOUR_UBUNTU_CODENAME
Components: main
Signed-By: /etc/apt/keyrings/vendor-archive-keyring.gpg
В устаревшем .listфайле добавьте эту опцию к существующей debстроке:
deb [signed-by=/etc/apt/keyrings/vendor-archive-keyring.gpg] https://repo.example/ubuntu YOUR_UBUNTU_CODENAME main
Используйте формат, уже имеющийся в этом источнике. В руководстве Ubuntusources.list это описано Signed-By, а также указаны поддерживаемые форматы.
Исходная запись указывает на один брелок ключей в /etc/apt/keyrings.
5. Обновите APT и проверьте.
Сохраните исходный файл и запустите:
sudo apt update
Обновление должно завершиться без NO_PUBKEYпредупреждения со стороны этого репозитория. После этого вы можете устанавливать или обновлять пакеты в обычном режиме. Эта команда обновляет метаданные пакета; она не обновляет уже установленные пакеты.
Чистое обновление списка пакетов подтверждает, что APT может проверить настроенный репозиторий.
Если ошибка сохраняется
Несоответствие отпечатка ключа: ключ может быть устаревшим или находиться в другом репозитории. Получите актуальный ключ у издателя.
Ключ не найден: убедитесь, что путь к источнику Signed-Byточно совпадает с путем к файлу связки ключей и что файл доступен для чтения.
Отсутствует файл релиза или ошибка 404: репозиторий может не поддерживать ваше кодовое имя Ubuntu. Следуйте рекомендациям издателя по совместимости или отключите источник; не пытайтесь угадать другой набор программ.
Официальный архив Ubuntu: убедитесь, что источник указывает на официальный архив Ubuntu и что ubuntu-keyringон цел. Не импортируйте неофициальный заменяющий ключ.
В Ubuntu Desktop, если вы больше не используете сторонний источник, откройте «Программное обеспечение и обновления» , отключите его в разделе «Другое программное обеспечение» и перезагрузите информацию о пакетах. Метки различаются в зависимости от версии. Старый глобальный процесс импорта аутентификации не заменяет проверку текущего ключа издателя и использование Signed-By.
Оставьте проверку подписи включенной.
Не используйте настройки trusted=yes, --allow-unauthenticated, или insecure-repository в качестве обходного пути. Если издатель не может подтвердить ключ или больше не поддерживает репозиторий, отключите его и используйте поддерживаемый источник. См. руководство по аутентификации архивов APT в Ubuntu .