Как исправить недостающие ключи 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>
,
Откройте ссылку в разделе паба. Сохранить содержимое ключа (из -----BEGIN PGP PUBLIC KEY BLOCK-----
в -----END PGP PUBLIC KEY BLOCK-----
) в виде файла.
Затем запустите:
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: постоянное решение
на это сообщение об ошибке, возникающее после добавления нового хранилища и обновления списка хранилищ. Это связано с тем, что адрес сервера больше не действителен. Так что просто измените адрес на хороший.
Открыть файл
~/.gnupg/gpg.conf
с текстовым редактором.В терминале:
gedit ~/.gnupg/gpg.conf
затем в этом файле найдите следующую жирную строку (116-я строка) (которая должна быть по умолчанию, как показано ниже):
[...]
сервер ключей hkp: //keys.gnupg.net
# keyserver mailto: pgp-public-keys@keys.nl.pgp.net
# keyserver ldap: //keyserver.pgp.comзатем добавьте следующую жирную строку, чтобы в итоге получить следующий результат:
(добавьте # во вторую строку, как следует, чтобы закомментировать старый адрес)
[...]
keyserver http://keyserver.ubuntu.com
#
сервер ключей hkp: //keys.gnupg.net
# keyserver mailto: pgp-public-keys@keys.nl.pgp.net
# keyserver ldap: //keyserver.pgp.comСохраните файл и попробуйте обновить снова:
В терминале:
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
После этого не должно быть ошибок, и все должно работать нормально.