apt-get update не выполняется из-за NO_PUBKEY 6AF7F09730B3F0A4

Вопрос или проблема

Я использую WSL (windows-for-linux) с установленным Ubuntu 20.04.3 LTS.
Когда я запускаю sudo apt-get update, я получаю следующую ошибку:

Err:7 https://apt.kitware.com/ubuntu bionic InRelease
The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 6AF7F09730B3F0A4
Fetched 11.0 kB in 1s (7552 B/s)

Я попробовал советы, опубликованные в:
The following signatures couldn’t be verified because the public key is not available: NO_PUBKEY
но это не работает для меня – gpg жалуется на “no data”:

sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 6AF7F09730B3F0A4
Executing: /tmp/apt-key-gpghome.Cz3vHTxU7i/gpg.1.sh --keyserver keyserver.ubuntu.com --recv-keys 6AF7F09730B3F0A4
gpg: keyserver receive failed: No data

Что я должен сделать, чтобы apt-get update заработал?

ОБНОВЛЕНИЕ:

Как было запрошено, делюсь /etc/apt/source.list

deb http://archive.ubuntu.com/ubuntu/ focal main restricted
deb http://archive.ubuntu.com/ubuntu/ focal-updates main restricted
deb http://archive.ubuntu.com/ubuntu/ focal universe
deb http://archive.ubuntu.com/ubuntu/ focal-updates universe
deb http://archive.ubuntu.com/ubuntu/ focal multiverse
deb http://archive.ubuntu.com/ubuntu/ focal-updates multiverse
deb http://archive.ubuntu.com/ubuntu/ focal-backports main restricted universe multiverse


deb http://security.ubuntu.com/ubuntu/ focal-security main restricted
deb http://security.ubuntu.com/ubuntu/ focal-security universe
deb http://security.ubuntu.com/ubuntu/ focal-security multiverse
deb https://apt.kitware.com/ubuntu/ bionic main

Я добавил ключ на ключевой сервер Ubuntu (по какой-то причине у них не было ключа для репозитория Kitware apt, который был обновлен в 2022 году)

Запуск этого должен решить вашу проблему:

sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 6AF7F09730B3F0A4

Следуйте официальной документации:

  1. Сначала выполните следующую команду, чтобы установить все необходимые программы:

    sudo apt-get update
    sudo apt-get install gpg wget
    
  2. Теперь добавьте кольцо ключей GPG:

    wget -O - https://apt.kitware.com/keys/kitware-archive-latest.asc 2>/dev/null | gpg --dearmor - | sudo tee /usr/share/keyrings/kitware-archive-keyring.gpg >/dev/null
    
  3. Обновите:

    sudo apt-get update
    

В вашем /etc/apt/sources.list.d/kitware.list это:

deb [signed-by=/usr/share/keyrings/kitware-archive-keyring.gpg] https://apt.kitware.com/ubuntu/ focal main

Таким образом, этот репозиторий принуждён к проверке с помощью /usr/share/keyrings/kitware-archive-keyring.gpg этого публичного ключа.

Но вы обновили свой публичный ключ с помощью глобального хранилища ключей apt-key (которое находится в /etc/apt/trusted.gpg и /etc/apt/trusted.gpg.d/), а не этот конкретный файл.

Таким образом, есть два способа заставить это работать:

  • Следуйте точным инструкциям в разделе “Получение экземпляра нашего подписывающего ключа” на https://apt.kitware.com/, чтобы создать файл /usr/share/keyrings/kitware-archive-keyring.gpg.
  • Удалите [signed-by=/usr/share/keyrings/kitware-archive-keyring.gpg] из /etc/apt/sources.list.d/kitware.list, чтобы apt мог читать соответствующий публичный ключ из глобального хранилища ключей. (Вам все равно понадобится установить публичный ключ откуда-то)

Мне удалось решить эту проблему без дополнительных предупреждений, следуя инструкциям по настройке для (в моем случае) выпуска ubuntu jammy (запуск от имени суперпользователя):

https://apt.kitware.com/

    test -f /usr/share/doc/kitware-archive-keyring/copyright || wget -O - https://apt.kitware.com/keys/kitware-archive-latest.asc 2>/dev/null | gpg --dearmor - | sudo tee /usr/share/keyrings/kitware-archive-keyring.gpg >/dev/null \
    && echo 'deb [signed-by=/usr/share/keyrings/kitware-archive-keyring.gpg] https://apt.kitware.com/ubuntu/ jammy main' | sudo tee /etc/apt/sources.list.d/kitware.list >/dev/null \
    && apt-get update 

Ответ или решение

Возникновение ошибки "NO_PUBKEY" при использовании команды apt-get update говорит о том, что отсутствует необходимый публичный ключ для валидации пакетов из подключенного репозитория. В данном случае ошибка связана с отсутствием ключа для репозитория Kitware, используемого в системе Ubuntu, работающей на WSL (Windows Subsystem for Linux). Рассмотрим теоретическую часть и практическое решение этой проблемы.

Теория

В системе управления пакетами APT (Advanced Package Tool) каждый подключаемый репозиторий подписывается цифровым ключом, который гарантирует подлинность и целостность пакетов. Публичные ключи хранятся в системе и используются при обновлении списка пакетов (команды apt-get update) для проверки подписи. Если публичный ключ не найден, APT сообщает о проблеме с верификацией, что и вызвало возникновение ошибки "NO_PUBKEY".

Основной причиной проблемы является то, что в системе отсутствует соответствующий публичный ключ, который необходимо добавить вручную.

Пример

Вы столкнулись с ошибкой "NO_PUBKEY 6AF7F09730B3F0A4", что свидетельствует о необходимости получить данный ключ для корректной работы с репозиторием Kitware. Пытались использовать команду apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 6AF7F09730B3F0A4, но это не помогло из-за сообщения об ошибке "gpg: keyserver receive failed: No data".

Применение

Чтобы решить эту проблему, вам необходимо добавить соответствующий ключ следующим образом:

  1. Установите необходимые утилиты:

    sudo apt-get update
    sudo apt-get install gpg wget

    Установка gpg (GNU Privacy Guard) и wget поможет вам загрузить и обработать ключи.

  2. Добавьте GPG-ключ репозитория Kitware:
    Выполните следующую команду для загрузки и добавления ключа в систему:

    wget -O - https://apt.kitware.com/keys/kitware-archive-latest.asc 2>/dev/null | gpg --dearmor - | sudo tee /usr/share/keyrings/kitware-archive-keyring.gpg >/dev/null

    Эта команда загружает последнюю версию ключа из официального сайта Kitware и добавляет его в указанное местоположение.

  3. Проверьте источники и исправьте при необходимости:
    В файле /etc/apt/sources.list.d/kitware.list должна содержаться строка следующего вида:

    deb [signed-by=/usr/share/keyrings/kitware-archive-keyring.gpg] https://apt.kitware.com/ubuntu/ focal main

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

  4. Обновите списки пакетов:
    Завершающим шагом будет обновление информации о пакетах:

    sudo apt-get update

Если все шаги выполнены верно, ошибка "NO_PUBKEY" должна исчезнуть.

Заключение

Ваша система требует наличия корректно настроенной инфраструктуры ключей для доступа к репозиториям. В будущем для предотвращения подобных ситуаций регулярно проверяйте изменения в поддержке репозиториев и своевременно обновляйте ключи. Это позволит поддерживать вашу систему в актуальном и безопасном состоянии, обеспечивая доступ к последним версиям необходимого ПО.

Эти рекомендации и инструкции помогут вам быстро устранить возникающие вопросы, связанные с отсутствием ключей, и позволят сосредоточиться на других задачах, требующих внимания в вашей работе с инструментами IT и разработкой на базе WSL и Ubuntu.

Оцените материал
Добавить комментарий

Капча загружается...