#Что означает ошибка
W: GPG error: https://repo.example.com stable InRelease: The following signatures couldn’t be verified because the public key is not available: NO_PUBKEY 1234567890ABCDEF
apt проверяет подпись метаданных каждого репозитория. Если нужного открытого ключа нет, обновление списка пакетов выдаёт предупреждение или ошибку и репозиторий игнорируется.
#Причины и решения
| Возможная причина | Как узнать | Что делать |
|---|---|---|
| Ключ репозитория не установленРепозиторий добавлен без ключа. | Сообщение содержит идентификатор ключа NO_PUBKEY. | Скачайте ключ с официального сайта разработчика. |
| Ключ у репозитория истёк или сменилсяРазработчик обновил ключ. | Ошибка появилась у ранее работавшего репозитория. | Загрузите новый ключ с сайта проекта. |
Ключ лежит в устаревшем хранилищеИспользуется apt-key и общий trusted.gpg. | Предупреждение о том, что apt-key устарел. | Переложите ключ в /etc/apt/keyrings/ и добавьте signed-by. |
| Репозиторий не заслуживает доверия или заброшенНеофициальный репозиторий. | Нет официальной инструкции по ключу. | Не добавляйте ключ; удалите репозиторий. |
#Пошаговое решение
- Запомните ID ключаОткройте терминал Debian/Ubuntu и выполните
sudo apt update. Запишите точный URL репозитория и полный идентификатор послеNO_PUBKEY. Затем найдите официальные инструкции этого поставщика и проверьте полный отпечаток его ключа. Не берите ключ с произвольного сервера только по короткому ID и не добавляйтеtrusted=yes: это отключает защиту подписи пакетов. - Скачайте ключ в keyring
sudo gpg --keyserver keyserver.ubuntu.com --recv-keys 1234567890ABCDEF && sudo gpg --export 1234567890ABCDEF | sudo tee /etc/apt/trusted.gpg.d/репо.gpg >/dev/null. - Обновите спискиВ Ubuntu, Debian или Linux Mint откройте «Терминал» сочетанием Ctrl+Alt+T и введите
sudo apt update. При запросе введите пароль пользователя (символы не отображаются). Успех — списки получены без строкE:; предупрежденияW:тоже прочитайте. Если ошибка осталась, сохраните адрес репозитория и точную строку сообщения. Команда лишь обновляет сведения о пакетах, не устанавливая их. - Диагностика: сначала выявите точный репозиторий и его ошибку подписи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/nullsudo apt update
#Если не помогло
Если репозиторий не нужен, удалите его файл из /etc/apt/sources.list.d/. Если ключ находится на keyserver.ubuntu.com, всё равно сверяйте отпечаток с тем, что указан на сайте разработчика.