Как исправить ошибку GPG «NO_PUBKEY» в Ubuntu

Ошибка NO_PUBKEY означает, что APT обнаружил репозиторий, но не может проверить подписанные метаданные пакета, поскольку отсутствует открытый ключ подписи этого репозитория. Определите источник, получите его ключ от издателя, проверьте полный отпечаток и свяжите его только с этим репозиторием Signed-By. Затем обновите APT. Не обходите проверку подписи, чтобы скрыть ошибку.

Проверки APT защищают метаданные пакетов и загружаемые файлы от несанкционированного изменения. Ubuntu рекомендует ограничивать область действия ключей сторонних разработчиков их собственным источником. См. рекомендации Canonical по работе со сторонними репозиториями и документацию по целостности архивов .

1. Определите репозиторий, в котором возникла ошибка.

Откройте терминал и выполните следующую команду:

sudo apt update

Обратите внимание на URL-адрес репозитория рядом с NO_PUBKEY. APT может отображать короткий идентификатор ключа, например ABCD1234EF567890. Он помогает определить отсутствующий ключ, но не доказывает, кому он принадлежит. Перед изменением настроек доверия подтвердите, какой источник программного обеспечения вызвал ошибку.

Терминал Ubuntu показывает ошибку NO_PUBKEY для стороннего репозитория APT.
Выделенная строка указывает на репозиторий, ключ подписи которого APT не может проверить; URL-адрес и идентификатор ключа приведены в качестве примеров.

2. Получите и проверьте ключ издателя.

Используйте официальную страницу установки или место загрузки ключа владельца репозитория. Для PPA Launchpad подтвердите его владельца и архив на Launchpad. В документации Ubuntu добавление PPA осуществляется с помощью команды `<ключ>` add-apt-repository, которая устанавливает ключ:

sudo add-apt-repository ppa:OWNER/ARCHIVE

Замените OWNER/ARCHIVEна точный PPA с его официальной страницы. Для репозитория поставщика загружайте ключ только из инструкций поставщика. В этом примере используется URL-адрес-заполнитель; замените его опубликованным URL-адресом:

curl -fsSLo /tmp/vendor-archive-keyring.asc https://repo.example/ubuntu/vendor-archive-keyring.asc
gpg --show-keys --with-fingerprint /tmp/vendor-archive-keyring.asc

Сравните полный отпечаток пальца с тем, который поставщик услуг публикует по официальному каналу. Не продолжайте, если он отличается или его невозможно проверить.

Страница браузера, отображающая загрузку ключа подписи из репозитория издателя программного обеспечения.
Воспользуйтесь инструкциями издателя, чтобы найти ключ и его отпечаток.

3. Храните ключ в отдельном брелке.

Для ключа в формате ASCII .ascсоздайте каталог для связки ключей, преобразуйте ключ и разрешите APT его чтение:

sudo install -d -m 0755 /etc/apt/keyrings
sudo gpg --dearmor --yes --output /etc/apt/keyrings/vendor-archive-keyring.gpg /tmp/vendor-archive-keyring.asc
sudo chmod 0644 /etc/apt/keyrings/vendor-archive-keyring.gpg

Если издатель предоставляет двоичный .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, а также указаны поддерживаемые форматы.

В текстовом редакторе Ubuntu отображается файл исходного кода deb822, в котором параметр Signed-By указывает на связку ключей, специфичную для репозитория.
Исходная запись указывает на один брелок ключей в /etc/apt/keyrings.

5. Обновите APT и проверьте.

Сохраните исходный файл и запустите:

sudo apt update

Обновление должно завершиться без NO_PUBKEYпредупреждения со стороны этого репозитория. После этого вы можете устанавливать или обновлять пакеты в обычном режиме. Эта команда обновляет метаданные пакета; она не обновляет уже установленные пакеты.

В терминале Ubuntu отображается сообщение о завершении команды 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 .

Оставить комментарий

Как безопасно восстановить потерянные разделы и данные с жесткого диска

Как безопасно восстановить потерянные разделы и данные с жесткого диска

Узнайте, как восстановить потерянные разделы и файлы с помощью TestDisk и PhotoRec. Защитите исходный диск, проведите безопасное сканирование и сохраните восстановленные данные на другой диск.

Как сканировать QR-коды на настольном компьютере с Linux

Как сканировать QR-коды на настольном компьютере с Linux

Сканируйте QR-коды в Linux с помощью CoBang, используя веб-камеру или файл изображения. См. варианты установки, шаги настройки и решения проблем с доступом к камере Flatpak.

Как изменить настройки веб-камеры в Linux с помощью Cameractrls

Как изменить настройки веб-камеры в Linux с помощью Cameractrls

Изменяйте настройки веб-камеры в Linux с помощью Cameractrls: настраивайте экспозицию, цвет, подавление мерцания и другие поддерживаемые параметры, а затем проверяйте совместимые видеорежимы.

Как установить PhpStorm на Linux: Toolbox, Tar.gz, Snap и AUR

Как установить PhpStorm на Linux: Toolbox, Tar.gz, Snap и AUR

Установите PhpStorm на Linux с помощью JetBrains Toolbox или автономного архива tar.gz, а также через Snap и Arch AUR. Java уже включена в комплект.

Как создать резервную копию CD-ROM в формате ISO в Linux

Как создать резервную копию CD-ROM в формате ISO в Linux

Создайте образ CD-ROM ISO в Linux с помощью GNOME Disks или dd. Определите оптический привод, отслеживайте процесс копирования, проверяйте образ и узнавайте, когда поврежденный диск или аудиодиск требует использования другого инструмента.

Как вырезать изображение в Linux с помощью GIMP

Как вырезать изображение в Linux с помощью GIMP

Удаление фона фотографии в Linux с помощью GIMP: обведите контур объекта, удалите выделенный фон, сохранив прозрачность, и экспортируйте многоразовый PNG-файл.

Как установить Cisco Packet Tracer на Linux

Как установить Cisco Packet Tracer на Linux

Загрузите Cisco Packet Tracer 9.0.1 для Ubuntu 64-бит, установите DEB-пакет с помощью APT, примите лицензионное соглашение в Терминале и войдите в систему, чтобы начать лабораторную работу.

Скачайте FlightGear бесплатно: официальное руководство по установке

Скачайте FlightGear бесплатно: официальное руководство по установке

Скачайте FlightGear бесплатно с официального сайта. Сравните пакеты для Windows, macOS и Linux, установите файлы данных и совершите свой первый полет.

Настольное приложение Google Tasks: как им пользоваться на компьютере

Настольное приложение Google Tasks: как им пользоваться на компьютере

Откройте Google Задачи в браузере, добавьте ярлык Chrome или запустите приложение, и управляйте задачами с указанием даты через Календарь и Gmail.

OKSampler: Бесплатный и простой музыкальный сэмплер для клавишных ритмов.

OKSampler: Бесплатный и простой музыкальный сэмплер для клавишных ритмов.

OKSampler сопоставляет MP3-клипы с клавишами клавиатуры и может зацикливать аудио. Узнайте, что делает эта старая бесплатная программа, на чем заканчиваются ее старые функции и что нужно проверить перед загрузкой.