Как исправить недостающие ключи GPG?

Я только что установил Ubuntu 12.04 и добавил репо, а когда сделал apt-get updateМне не хватает ключа gpg.

Следующая команда, кажется, не работает для меня:

apt-get update 2> /tmp/keymissing; for key in $(grep "NO_PUBKEY" /tmp/keymissing |sed "s/.*NO_PUBKEY //"); do echo -e "\nProcessing key: $key"; gpg --keyserver subkeys.pgp.net --recv $key && sudo gpg --export --armor $key | apt-key add -; done

Как решить эту проблему?

14 ответов

Мне понравилось это решение, повторно загрузите недостающие ключи с сервера ключей Ubuntu.

Для Ubuntu

В моем случае

 Reading package lists... Done  
 W: GPG error: http://ppa.launchpad.net precise 
 Release: The following signatures couldn't be verified because the public key is not available: 
 NO_PUBKEY 2EA8F35793D8809A

Вот команда для добавления отсутствующего ключа, упомянутого в сообщении об ошибке.

sudo apt-key adv --keyserver ha.pool.sks-keyservers.net --recv-keys 2EA8F35793D8809A

Поэтому я беру недостающий ключ 2EA8F35793D8809A и попросить keyserver.ubuntu.com добавить его в список ключей, которые у меня есть в apt.

Для мяты linux
Ваш сервер ключей немного отличается keyserver.linuxmint.com

sudo apt-key adv --recv-key --keyserver keyserver.linuxmint.com "missing key"

Альтернативные серверы ключей, чтобы попробовать
keyserver.ubuntu.com

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

Установить -

sudo add-apt-repository ppa:webupd8team/y-ppa-manager  
sudo apt-get update  
sudo apt-get install y-ppa-manager    

Как только вы установите его, запустите его, затем перейдите к advance и выберите "импортировать все недостающие ключи GPG"

Автоматическая загрузка с использованием apt-key adv --recv-keys может не работать за брандмауэром.

В этом случае откройте веб-страницу Ubuntu Key Server в вашем веб-браузере и найдите строку 0x<hexadecimal code of your missing key>,

https://4.bp.blogspot.com/-4DcbUHJdhbc/UYCwboKPnSI/AAAAAAAACMw/CGmu7D0dO2Q/s1600/Screenshot+from+2013-05-01+11:40:24.png

Откройте ссылку в разделе паба. Сохранить содержимое ключа (из -----BEGIN PGP PUBLIC KEY BLOCK----- в -----END PGP PUBLIC KEY BLOCK-----) в виде файла.

https://3.bp.blogspot.com/-g5XoOYgirZ4/UYCw6UqMweI/AAAAAAAACM4/AAllSOmwM9g/s1600/Screenshot+from+2013-05-01+11:42:24.png

Затем запустите:

sudo apt-key add <file-with-saved-key>

Источник: http://opensourceforgeeks.blogspot.in/2013/04/w-gpg-error-httpppalaunchpadnet-precise.html

Сначала введите следующую команду в терминале

 sudo rm /var/lib/apt/lists/* -vf

затем обновите свою систему, введя следующую команду в терминале

 sudo apt-get update && sudo apt-get upgrade

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

Для Ubuntu 12.04 Precise: постоянное решение

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

  1. Открыть файл ~/.gnupg/gpg.conf с текстовым редактором.

    В терминале: gedit ~/.gnupg/gpg.conf

  2. затем в этом файле найдите следующую жирную строку (116-я строка) (которая должна быть по умолчанию, как показано ниже):

    [...]
    сервер ключей hkp: //keys.gnupg.net
    # keyserver mailto: pgp-public-keys@keys.nl.pgp.net
    # keyserver ldap: //keyserver.pgp.com

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

    (добавьте # во вторую строку, как следует, чтобы закомментировать старый адрес)

    [...]
    keyserver http://keyserver.ubuntu.com
    # сервер ключей hkp: //keys.gnupg.net
    # keyserver mailto: pgp-public-keys@keys.nl.pgp.net
    # keyserver ldap: //keyserver.pgp.com

  4. Сохраните файл и попробуйте обновить снова:

    В терминале: sudo apt-get update

На основании нелаарского ответа:

sudo apt-get update 2>&1 1>/dev/null | sed -ne 's/.*NO_PUBKEY //p' |
while read key; do
    echo 'Processing key:' "$key"
    sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys "$key"
done

Сценарий сбрасывает все ошибки во временный файл, а затем перебирает их, импортируя отсутствующие ключи.

Самый простой способ с Y PPA MAnager

sudo add-apt-repository ppa:webupd8team/y-ppa-manager
sudo apt-get update
sudo apt-get install y-ppa-manager 

Open Y PPA Manager From Dash

введите описание изображения здесь

Введите ваш пароль администратора

введите описание изображения здесь

Двойной щелчок по расширенной опции

введите описание изображения здесь

Нажмите Попробуйте импортировать все недостающие ключи GPG

введите описание изображения здесь

Нажмите Ok, чтобы исправить это

Сначала введите следующую команду в терминале

sudo rm /var/lib/apt/lists/* -vf

затем обновите свою систему, введя следующую команду в терминале

sudo apt-get update && sudo apt-get upgrade

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

Для меня сработало сначала удалить ключ, а затем переустановить. Для этого я сделал следующее:

root@ > ~: sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 630239CC130E1A7FD81A27B140976EAF437D05B5

удаление с

root@ > ~: sudo apt-key del 630239CC130E1A7FD81A27B140976EAF437D05B5

Затем переустановите, набрав

root@ > ~: sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 630239CC130E1A7FD81A27B140976EAF437D05B5

Я хотел автоматически исправить подобные ошибки в скрипте bash. Для тех, кто заинтересован, это должно сделать свое дело:

sudo apt-get update 2> /tmp/keymissing
if [ -f /tmp/keymissing ]
then
    for key in $(grep "NO_PUBKEY" /tmp/keymissing |sed "s/.*NO_PUBKEY //")
        do 
        echo -e "\nProcessing key: $key"
        sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys $key
        sudo apt-get update
    done
    rm /tmp/keymissing
fi

Самый простой способ:

sudo apt-key adv --refresh-keys --keyserver keyserver.ubuntu.com

Или, если за прокси:

sudo apt-key adv --refresh-keys --keyserver keyserver.ubuntu.com --keyserver-options http-proxy=http://myproxy:123

(заменить myproxy:123 с вашим настоящим прокси, конечно)

Я столкнулся с той же проблемой, добавив ppa (ppa:nathandyer/vocal-stable), это сломало мои репозитории. Я руководствовался от автора Web Upd8, как я могу попытаться это исправить, вот его шаги, которые работали мне.

Сделайте резервную копию вашего .gpg ключи, на тот случай, если что-то пойдет не так.

Давайте создадим папку, в которой мы разместим нашу резервную копию.

  • mkdir ~/gpg-backups

    Это создает резервные копии всех файлов в /etc/apt/trusted.gpg.d/ папка.

  • sudo cp /etc/apt/trusted.gpg.d/*.* ~/gpg-backups/

Теперь мы удалим все .gpg ключи.

  • sudo rm /etc/apt/trusted.gpg.d/

  • sudo cp /etc/apt/trustdb.gpg ~/gpg-backups/

  • sudo rm /etc/apt/trustdb.gpg

в разделе "Программное обеспечение и обновления" на вкладке "Аутентификация" нажмите "Восстановить настройки по умолчанию"

Установите менеджер y-ppa, чтобы импортировать все недостающие ключи GPG

sudo add-apt-repository ppa:webupd8team/y-ppa-manager
sudo apt-get update
sudo apt-get install y-ppa-manager

Ссылка:

Если у вас есть что-то вроде этого:

# aptitude update
...
Ign http://archive.canonical.com wily/partner Translation-en_US
Fetched 422 kB in 3s (130 kB/s)
W: GPG error: http://ubuntu.volia.net wily InRelease: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 40976EAF437D05B5 NO_PUBKEY 3B4FE6ACC0B21F32

Прежде всего попробуйте:

# sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 3B4FE6ACC0B21F32

Вывод последней команды может быть:

gpg: keyblock resource `/etc/apt/trusted.gpg.d/webupd8team_ubuntu_experiments.gpg': resource limit
gpg: keyblock resource `/etc/apt/trusted.gpg.d/webupd8team_ubuntu_gthumb.gpg': resource limit

Так что вам нужно идти в /etc/apt/trusted.gpg.d/ и удалите неиспользуемые ключи, а затем повторите apt-key adv а также aptitude update

Бежать wget -q -O - https://dl.google.com/linux/linux_signing_key.pub | sudo apt-key add -

Эта проблема возникла у меня при установке 12.04 с использованием немецких настроек. В этом случае список репозиториев по умолчанию использует немецкие зеркальные репозитории. Если это так, вы можете отредактировать список репозиториев и изменить все немецкие зеркальные репозитории на стандартные репозитории Ubuntu.

Вы можете использовать следующий метод:

sudo nano /etc/apt/sources.list

Поиск и замена в Nano с помощью Alt-r

Поиск (заменить): /de.

Заменить: /

Заменить все (нажмите A)

Сохранить файл Ctrl-x

Затем обновите свою систему, введя следующую команду в терминале:

sudo apt-get update && sudo apt-get upgrade

После этого не должно быть ошибок, и все должно работать нормально.

Другие вопросы по тегам