apt и dpkg UbuntuDebian

apt: GPG error — NO_PUBKEY

  • Обновлено
  • Чтение ≈ 4 минуты
  • Нужны права администратора

Краткий ответ

Ошибка NO_PUBKEY при apt update означает, что у системы нет открытого ключа репозитория. Скачайте ключ от издателя, преобразуйте через gpg --dearmor в /etc/apt/keyrings и укажите его в sources.list через signed-by. Устаревший apt-key больше не используйте.

В этой статье
  1. Что произошло
  2. Порядок действий
  3. Частые случаи
NO_PUBKEY
W: GPG error: https://example.com stable InRelease: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 0123456789ABCDEF
По-русскиНе найден публичный ключ для проверки подписи репозитория.

#Что произошло

Каждый репозиторий подписывает файл InRelease. Чтобы apt поверил подписи, у него должен быть открытый ключ издателя. Ошибка NO_PUBKEY с шестнадцатеричным идентификатором значит, что нужный ключ не установлен или лежит не там, где указано. Раньше советовали apt-key adv --recv-keys — этот способ устарел и небезопасен, потому что ключ становился доверенным для всех репозиториев сразу. Современный способ: хранить ключ в отдельном файле в /etc/apt/keyrings/ и привязывать его к конкретному репозиторию параметром signed-by.

Возможная причинаКак узнатьЧто делать
Ключ получен по идентификаторуНужен файл ключа, а не только ID.Ошибка содержит NO_PUBKEY и 16 символов.Найдите официальную страницу репозитория и скачайте ключ оттуда.
Ключ в формате ASCIIФайл .asc положили без преобразования.apt не принимает.Выполните gpg --dearmor или назовите файл .asc и укажите его в signed-by (apt поддерживает оба формата).
Репозиторий ранее работал, а теперь нетИздатель сменил ключ.Ошибка EXPKEYSIG или NO_PUBKEY после обновления.Скачайте новый ключ.
Ключ в trusted.gpgУстаревшая схема.Предупреждение о ключах в trusted.gpg.Перенесите ключ в /etc/apt/keyrings и удалите старый.
Репозиторий прекращёнИздатель закрыл адрес.Ошибки 404 вместе с GPG.Закомментируйте строку источника.
Ручная правка правНет прав чтения файла ключа.Ошибка доступа.sudo chmod a+r /etc/apt/keyrings/*.gpg.

#Порядок действий

  1. Определите конкретный неподписанный источникВ Debian/Ubuntu откройте терминал (Ctrl+Alt+T) и выполните sudo apt update. Скопируйте полный адрес репозитория из строки с NO_PUBKEY и найдите соответствующую запись в /etc/apt/sources.list или /etc/apt/sources.list.d/. Не вводите строку example.com буквально: это лишь условный пример адреса. Перед правкой сохраните исходный файл и проверьте, действительно ли источник вам нужен.
  2. Найдите на сайте издателя ссылку на ключОткройте официальный сайт поставщика проблемного репозитория, адрес которого показан в ошибке apt, и найдите инструкцию установки для вашей версии Ubuntu/Debian. Проверьте полный отпечаток ключа и используемый домен; один краткий идентификатор NO_PUBKEY не достаточен для доверия. Если источник неизвестен или устарел, не скачивайте ключ: отключите его после проверки нужных пакетов и повторите sudo apt update.
  3. Установите только проверенный ключ издателяВместо случайных команд скачивания сначала найдите официальный ключ на сайте владельца репозитория и сверьте полный отпечаток по его независимой публикации. В Debian/Ubuntu используйте отдельный файл проверенного ключа с правами чтения для APT, обычно в /etc/apt/keyrings/; путь и формат (.asc или .gpg) берите из инструкции издателя. Нельзя автоматически импортировать произвольный ключ из интернета, включать trusted=yes или обходить проверки APT.
  4. Привяжите ключ в файле источникаВ файле проблемного источника из /etc/apt/sources.list.d/ проверьте наличие ссылки signed-by= на реально установленный проверенный ключ. Для формата deb822 .sources используется поле Signed-By: с корректным путём; точный синтаксис берите из официальной документации издателя. Не размещайте ключ для одного стороннего репозитория в глобальном доверенном хранилище и не добавляйте trusted=yes. После сохранения выполните sudo apt update.
  5. Обновите индексОткройте терминал Debian/Ubuntu и выполните sudo apt update только после проверки происхождения ключа и записи Signed-By либо отключения ненужного стороннего репозитория. Дождитесь окончания, убедитесь, что исчезла ошибка подписи для названного адреса и другие источники обновились. Если сообщение осталось, запишите полный URL и код ключа; не используйте trusted=yes или разрешение небезопасных репозиториев.
  6. Удалите дубликатыЕсли apt сообщает о дублирующемся источнике или конфликте Signed-By, найдите записи одного и того же URL/выпуска через grep -R в /etc/apt/sources.list и /etc/apt/sources.list.d/. Сохраните резервные копии затронутых файлов, затем отключите только подтверждённую лишнюю запись и выполните sudo apt update. Не удаляйте ключи и не назначайте случайный ключ всем репозиториям.
  7. Команды для отдельных ситуацийВыберите только подходящий вариант. Это не одна последовательность: часть команд диагностирует проблему, а часть меняет настройки или данные.
    Выберите подходящий вариант — это не команды для последовательного выполнения
    Вариант 1Диагностика: сначала выявите точный репозиторий и его ошибку подписи.
    Linux · Терминал (Bash)КомандаНужен sudo
    Диагностика: сначала выявите точный репозиторий и его ошибку подписи. Не загружайте ключи из произвольных URL. Установку подписанного ключа и параметра Signed-By выполняйте только по официальной инструкции владельца этого репозитория, предварительно проверив его адрес и отпечаток ключа.
    grep -R -h -E "^(deb |URIs:|Signed-By:)" /etc/apt/sources.list /etc/apt/sources.list.d/ 2>/dev/null
    sudo apt update
    Вариант 2Файл источника с привязкой ключа (архитектуру и ветку берите из инструкции издателя)
    /etc/apt/sources.list.d/example.list
    Файл источника с привязкой ключа (архитектуру и ветку берите из инструкции издателя)
    deb [arch=amd64 signed-by=/etc/apt/keyrings/example.gpg] https://example.com/repo stable main
    Вариант 3Исключён несуществующий пример ключа; импорт производится по подтверждённому отпечатку издателя.
    Linux · Терминал (Bash)КомандаНужен sudo
    Исключён несуществующий пример ключа; импорт производится по подтверждённому отпечатку издателя.
    sudo apt update

Сверьте отпечаток ключа в выводе gpg --show-keys с тем, что опубликован на сайте издателя, а не с тем, что вам прислали в чате или на форуме.

#Частые случаи

Так эту ошибку тоже называют

Источники и обновления

Последнее обновление статьи: 2 ноября 2026. Версии программ и интерфейсы меняются — если шаги не совпадают с вашей версией, сверяйтесь с документацией производителя.