Ошибки

Ошибка apt NO_PUBKEY и «The repository is not signed»: нет ключа репозитория

Сторонний репозиторий подписан ключом, которого нет на сервере, и apt перестал его обновлять. Найдите этот репозиторий и либо поставьте ключ заново, либо отключите его.

Обновлено 09.10.2026≈ 5 мин чтения
Содержание 9

Что сделать прямо сейчас

  1. Найдите в ошибке адрес репозитория и файл, где он подключён, — шаг 1.
  2. Если программа из этого репозитория нужна, поставьте ключ по инструкции её разработчика — шаг 2.
  3. Если не нужна — отключите репозиторий — шаг 3.

Все команды на этой странице вводятся на сервере: подключитесь к нему по SSH (как подключиться) и набирайте их в том же окне.

Что значит это сообщение

Так выглядит вывод sudo apt update, когда для репозитория нет ключа (вместо example.com будет адрес вашего репозитория, вместо 1A2B… — номер ключа):

W: GPG error: https://example.com/repo stable InRelease: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 1A2B3C4D5E6F7A8B
E: The repository 'https://example.com/repo stable InRelease' is not signed.
N: Updating from such a repository can't be done securely, and is therefore disabled by default.
N: See apt-secure(8) manpage for repository creation and user configuration details.

Строки вывода apt начинаются с приставки: E: — ошибка, W: — предупреждение, N: — пояснение к ним.

Каждый репозиторий подписывает свой список пакетов. apt проверяет подпись открытым ключом, который лежит на сервере. NO_PUBKEY значит «нет открытого ключа с таким номером». Без проверки apt этот репозиторий не обновляет — так он защищает сервер от подменённых пакетов. Репозитории Ubuntu при этом обновляются, ошибка касается только одного адреса.

Причины:

  • ключ не поставили, когда подключали репозиторий;
  • разработчик сменил ключ, а на сервере остался старый;
  • файл ключа удалили или в настройке репозитория указан неверный путь к нему.

Шаг 1. Найдите, какой репозиторий без ключа

Возьмите адрес из строки с ошибкой — в примере это https://example.com/repo. Найдите файл, где этот репозиторий подключён (вместо example.com напишите свой адрес без https://):

grep -r "example.com" /etc/apt/sources.list /etc/apt/sources.list.d/

Команда покажет имя файла и строку с адресом, например:

/etc/apt/sources.list.d/example.sources:URIs: https://example.com/repo

Откройте файл для просмотра:

cat /etc/apt/sources.list.d/example.sources

Найдите строку Signed-By: — в ней путь к файлу ключа. В файлах с окончанием .list путь стоит в квадратных скобках: [signed-by=/usr/share/keyrings/…]. Проверьте, есть ли такой файл:

ls -l /usr/share/keyrings/

Если строки Signed-By нет или файла ключа нет в папке — ключ не поставлен.

Шаг 2. Если репозиторий нужен — поставьте ключ заново

Откройте инструкцию по установке программы на её официальном сайте — раздел для Ubuntu или Debian. Повторите шаги, где скачивается ключ и подключается репозиторий: если разработчик сменил ключ, в инструкции уже будет новый.

Ubuntu советует хранить ключи сторонних репозиториев в папке /usr/share/keyrings/ и указывать путь к ключу в строке Signed-By файла репозитория. Команду apt-key не используйте: в Ubuntu она не рекомендуется.

Берите ключ только с официального сайта программы. Ключ разрешает ставить пакеты из репозитория, а пакеты ставятся с правами администратора.

После этого обновите список пакетов:

sudo apt update

Шаг 3. Если репозиторий не нужен — отключите его

Если программа из этого репозитория больше не нужна, уберите файл репозитория из папки настроек apt. Удобнее перенести его в папку root — так его можно вернуть:

sudo mv /etc/apt/sources.list.d/example.sources /root/

Вместо example.sources подставьте имя файла из шага 1. Если адрес нашёлся в файле /etc/apt/sources.list, откройте его в редакторе: sudo nano /etc/apt/sources.list (как работать с редактором — в разделе про nano) и поставьте знак # в начало строки с этим адресом. Затем:

sudo apt update

Программы, уже поставленные из этого репозитория, останутся на сервере, но обновлений для них больше не будет.

Как проверить

Запустите sudo apt update. Строк GPG error и is not signed больше нет, а для адреса репозитория появились строки Hit: или Get:.

Похожие ошибки

СообщениеЧем отличается
W: An error occurred during the signature verification. The repository is not updated and the previous index files will be used. GPG error: …Ключа нет, но раньше список пакетов скачивался. apt оставил старый список — новых версий не будет. Исправляется так же
W: … Key is stored in legacy trusted.gpg keyring …Предупреждение: ключ лежит в старом общем файле ключей. Обновление работает. Чтобы убрать предупреждение, поставьте ключ по шагу 2
E: The repository '…' does not have a Release file.По этому адресу нет списка пакетов для вашей версии Ubuntu или адрес указан с ошибкой. Сверьте адрес с инструкцией разработчика

Тексты сообщений на этой странице сверены с исходным кодом apt 2.7.14 — эта версия стоит в Ubuntu 24.04. В других версиях Ubuntu слова могут немного отличаться.

Источники

Сверено 9 октября 2026 года.

Что почитать дальше

Проверено и обновлено: 09.10.2026