Вопрос Как исправить недостающие ключи 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

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


145
2018-04-28 22:26


происхождения


Было бы хорошо, если бы ответы на этот вопрос включали, почему эта ошибка происходит в первую очередь, и что делать, чтобы избежать ее в будущем. - Flimm
Я решил проблему с помощью Y-ppa-manager. Спасибо Ашу за решение!
Подробное решение с скриншотами opensourceforgeeks.blogspot.in/2013/04/... - Aniket Thakur
Связанный: askubuntu.com/q/13065/178596 - Wilf


ответы:


Мне понравилось это решение, повторно загрузите недостающие ключи с сервера ключей 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 и попросите keyerver.ubuntu.com добавить его в список ключей, которые у меня есть в apt.

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

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

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


214
2018-05-23 09:21



askubuntu.com/a/136735/10998 не работал для меня. - nelaaro
Есть ли какие-либо последствия для безопасности для этого? Я в основном просто загружаю открытый ключ через http, правильно? - Ajedi32
@iamcreasy, чтобы доказать установкам Ubuntu, что устанавливаемые вами пакеты являются безопасными и вредоносными программами, каждый пакет подписывается сервером ключей ubuntu. Поэтому ваш установщик проверяет, установлен ли установленный вами пакет из надежного и проверенного источника. Я не нашел действительно хорошей документации об этом, но это может помочь [gpg doc] (help.ubuntu.com/community/...) - nelaaro
Я создал функцию, добавляю нужные ключи adkeys (){ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys "$1";} И для удаления дублированных или проблемных ключей я использую это: grep -ril "pattern" /etc/apt | sudo xargs rm -f - SergioAraujo
я рекомендую --keyserver ha.pool.sks-keyservers.net, Это пул ключевых серверов с высокой доступностью, что значительно увеличивает шансы получить необходимый ключ. - Robin like the bird


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

Установить -

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

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


20
2018-05-03 11:06



Вы должны добавить sudo в эту команду! sudo apt-get... - Fih
Это сработало и для меня, и я очень впечатлен чистым удобным интерфейсом Y PPA Manager, это была хорошая находка, спасибо Ashu. - CoalaWeb
Я сделал то, что вы сказали, но ничего не произошло. Я имею в виду, что я не могу найти приложение в любом месте меню. - Cristiana Nicolae
@CristianaNicolae После установки вы можете найти Y PPA Manager в разделе «Приложения»> «Служебные». - Ashu
Извините Ашу, я проверил и дважды проверил. Я до сих пор не вижу его там. Кажется, что он установлен где-то в системе, но по некоторым причинам он нигде не отображается в меню. - Cristiana Nicolae


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

В этом случае откройте веб-страницу Сервер ключей Ubuntu в вашем веб-браузере и поиск строки 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


14
2018-04-29 08:43





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

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

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

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

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


12
2018-05-14 10:26



thx для ответа. Решение моей проблемы было намного проще: типа sudo su перед тем, как набрать мою команду выше - Fih
Хотя это поможет вам, sudo su никоим образом не является правильным подходом - в этом случае sudo -s сделал бы то, что вам нужно. - guntbert
Я думаю, вы имели в виду sudo rm /var/lib/apt/lists/* -rf (опция «r» вместо «v») - Oliboy50
Использование обоих sudo а также rm опасный. Использование обоих rm а также * опасный. Используйте три в одной команде, и акула укусит вас или ваши файлы. - JB.
Это не работает для меня. - WiSaGaN


Для Ubuntu 12.04 Точность: постоянное решение

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

  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


10
2017-11-09 00:44





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

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

открыто Y Менеджер PPA из Dash

enter image description here

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

enter image description here

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

enter image description here

Нажмите «Попробовать импортировать все отсутствующие ключи GPG».

enter image description here

Нажмите «ОК», чтобы исправить


6
2018-05-08 11:08





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

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

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


6
2018-04-13 08:00



Это должно быть приемлемым решением, очень простым и безболезненным в использовании. Спасибо. - wheeler


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

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

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

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

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


4
2018-02-18 01:34





Я столкнулся с той же проблемой, добавив 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 manager для импорта всех отсутствующих ключей GPG

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

Справка:


1
2018-04-22 19:14



Кажется, что одна строка содержит ошибку, должна быть sudo rm /etc/apt/trusted.gpg.d/*, Опущение * на EOL невозможно, так как вы не можете удалить непустые каталоги с помощью rm когда -r вариант не указан .-- Ах, и вы можете убить 2 птиц с 1 камнем по линии sudo mv /etc/apt/trustdb.gpg ~/gpg-backups/, Потому что если вы переехать файла, вам не нужно rm исходный файл впоследствии. - syntaxerror


Я хотел бы автоматически исправить ошибки, подобные этому в сценарии 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

1
2018-05-01 11:10





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

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                                       

1
2018-04-27 15:47