Debian Debian GNU/Linux

Debian: apt сообщает NO_PUBKEY после переноса стороннего репозитория

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

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

После переноса стороннего репозитория APT сообщает NO_PUBKEY: подписывающий ключ отсутствует в доступном для этого источника наборе ключей. Не выключайте проверку подписей и не импортируйте случайный ключ из интернета.

В этой статье
  1. Что происходит и когда это важно
  2. Возможные причины и как их отличить
  3. Пошаговая диагностика и исправление
  4. Команды из инструкции с пояснениями
  5. Как проверить результат
  6. Если проблема не устранена

#Что происходит и когда это важно

При sudo apt update появляется NO_PUBKEY и идентификатор ключа, а также адрес репозитория. Проблема относится к проверке подписи Release/InRelease, а не обязательно к неисправности сети или установленного приложения.

#Возможные причины и как их отличить

Возможная причинаКак узнатьЧто делать
Ключ не перенесёнНовый компьютер не содержит ключа поставщика.Ошибка относится к одному стороннему домену.Найти официальную инструкцию поставщика и проверить отпечаток.
Неверный Signed-ByВ файле источника указан несуществующий либо неподходящий файл ключей.Ключ установлен, но APT его не использует.Сверить источник и точный путь к ключу.
Поменялся ключ поставщикаПроизводитель перевыпустил ключ или репозиторий действительно изменился.Старый ключ присутствует, а APT требует другой.Сверить объявление о смене ключа с официальным сайтом.

#Пошаговая диагностика и исправление

  1. Запишите точную ошибкуОткройте «Терминал» через меню приложений Debian. Введите sudo apt update, нажмите Enter и введите пароль своей учётной записи администратора; при вводе символы не отображаются. Запишите строку NO_PUBKEY вместе с доменом и идентификатором ключа. Если ошибка GPG относится к неизвестному домену, пока не обновляйте пакеты из него.
  2. Проверьте выпуск системыВ терминале без прав администратора выполните cat /etc/os-release; найдите VERSION_CODENAME. Он должен соответствовать версии, для которой производитель публикует пакеты. Нельзя заменять название выпуска на unstable только для устранения ошибки подписи.
  3. Найдите соответствующий файл источникаВыполните grep -R -n -E "^(deb |URIs:|Signed-By:|Suites:)" /etc/apt/sources.list /etc/apt/sources.list.d/ 2>/dev/null. Сопоставьте адрес из сообщения NO_PUBKEY с файлом .list или .sources и строкой Signed-By. Отсутствие отдельного источника может означать управление через пакет: не создавайте вторую дублирующую запись.
  4. Сверьте ключ с официальной страницей поставщикаОткройте официальный сайт разработчика программы и найдите раздел установки именно для вашей версии Debian, где опубликованы отпечаток ключа, адрес скачивания и формат .asc/.gpg. Не подменяйте адрес из инструкции случайным сайтом и не берите ключ лишь по короткому ID из сообщения; короткого идентификатора недостаточно для проверки подлинности.
  5. Проверьте существующий файл ключаЕсли источник содержит Signed-By: /etc/apt/keyrings/имя.gpg или signed-by=..., в терминале выполните ls -l /etc/apt/keyrings/ и проверьте точное имя и разрешение на чтение. Для существующего файла с именем, полученным из настройки, администратор может сверить полный отпечаток через gpg --show-keys --with-fingerprint ПУТЬ_К_КЛЮЧУ, подставив свой путь вместо примера. Не помещайте ключ в глобальный trusted.gpg, не используйте apt-key add.
  6. Исправляйте только после проверки подписиЕсли официальная документация подтверждает новый ключ и ваш отпечаток совпадает, следуйте именно её командам установки отдельного файла в /etc/apt/keyrings/ и настройке Signed-By. Перед правкой скопируйте исходный .list или .sources в резервную копию за пределами каталога sources.list.d, чтобы APT не считал копию вторым источником. Изменения выполняются только администратором. Если ключ не удаётся подтвердить, безопаснее временно отключить именно этот источник в его настройке, не отключая проверку подписей.
  7. Повторите получение списков пакетовВыполните sudo apt update и убедитесь, что адрес исправленного источника больше не выдаёт NO_PUBKEY. Если теперь возникает 404 или сообщение о неподдерживаемом выпуске, это отдельная ошибка репозитория: сверяйте Suites и не заменяйте его на случайный выпуск Debian.

#Команды из инструкции с пояснениями

Linux · Терминал (Bash)КомандаНужен sudo
В терминале от администратора; загружает списки и показывает проблему с подписями.
sudo apt update
Linux · Терминал (Bash)Команда
Чтение версии ОС, обычный пользователь.
cat /etc/os-release
Linux · Терминал (Bash)Команда
Поиск только активных строк источников, stderr скрывает сообщения о недоступных файлах.
grep -R -n -E "^(deb |URIs:|Signed-By:|Suites:)" /etc/apt/sources.list /etc/apt/sources.list.d/ 2>/dev/null
Linux · Терминал (Bash)Команда
Список файлов ключей; без правки.
ls -l /etc/apt/keyrings/

#Как проверить результат

Повторный sudo apt update заканчивается без ошибки подписи конкретного репозитория, адрес и версия источника совпадают с документацией поставщика; никакие режимы доверия trusted=yes не включались.

#Если проблема не устранена

Если достоверного отпечатка и официальной инструкции нет, не устанавливайте пакеты из репозитория: обратитесь к разработчику. При сбое после правки верните резервную копию источника и повторите sudo apt update.

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

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