Як виправити відсутні GPG-ключі?


154

Щойно я встановив 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

Як виправити цю проблему?


1
Було б добре, якби відповіді на це питання включали, чому ця помилка відбувається в першу чергу, і що робити, щоб уникнути її в майбутньому.
Flimm

Я вирішив свою проблему за допомогою Y-ppa-manager. Дякую Ашу за рішення!

1
Детальне рішення із скріншотами opensourceforgeeks.blogspot.in/2013/04/…
Aniket Thakur

1
Пов’язано: askubuntu.com/q/13065/178596
Вільф

Відповіді:


222

Мені сподобалося це рішення, заново скачайте відсутні ключі з сервера ключів 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


1
askubuntu.com/a/136735/10998 не працював для мене.
nelaaro

5
Чи є якісь наслідки для безпеки для цього? Я в основному просто завантажую відкритий ключ через http, правда?
Ajedi32

1
@iamcreasy, щоб довести установкам Ubuntu, що встановлені вами пакети захищені, а вільний від зловмисного програмного забезпечення кожен пакет підписується сервером ключів ubuntu. Тож ваш інсталятор перевіряє, чи не встановлений вами пакет надійний та перевірений джерело. Я не знайшов жодної справді хорошої документації про це, але це може допомогти [gpg doc] ( help.ubuntu.com/community/… )
nelaaro

1
Я створив функцію додавання необхідних клавіш. adkeys (){ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys "$1";}І для видалення дублюваних або проблемних ключів я використовую це:grep -ril "pattern" /etc/apt | sudo xargs rm -f
SergioAraujo

1
Рекомендую --keyserver ha.pool.sks-keyservers.net. Це пул високоякісних серверів ключів, що значно збільшує ваші шанси отримати потрібний вам ключ.
Робін, як птах

21

Існує програмне забезпечення під назвою, яке 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"


2
Ви повинні додати сюдо до цієї команди! sudo apt-get...
Фіх

Це також працювало для мене, і я дуже вражений чистим простим у користуванні інтерфейсом Y PPA Manager. Це була приємна знахідка, дякую Ашу.
CoalaWeb

Я зробив те, що ти кажеш, але нічого не сталося. Я маю на увазі, що я не можу знайти додаток ніде в меню.
Крістіана Ніколае

@ CristianaNicolae Після встановлення ви можете знайти Y PPA Manager у розділі Програми> Системні інструменти.
Ашу

Вибачте Ашу, я перевірив і двічі перевірив. Я все ще не бачу його там. Здається, що він встановлений десь у системі, але з деяких причин він не відображається ніде в меню.
Крістіана Ніколае

14

Автоматичне завантаження з використанням 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


12

спочатку введіть наступну команду в термінал

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

потім оновіть вашу систему, ввівши в терміналі наступну команду

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

після цього помилок не повинно бути, і все повинно працювати нормально.


THX для відповіді. Проблема моєї проблеми була набагато простішою: введіть, sudo suперш ніж вводити мою команду
Fih

Хоча це допомогло б вам, sudo suв жодному разі не правильний підхід - у цьому випадку sudo -sви зробили б те, що вам потрібно.
guntbert

Я думаю, ти мав на увазі sudo rm /var/lib/apt/lists/* -rf(варіант "r" замість "v")
Oliboy50

9
Використання обох sudoі rmнебезпечно. Використання обох rmі *небезпечно. Використовуйте трійку в одній команді, і акула вкусить вас або ваші файли.
JB.

Це не працює для мене.
WiSaGaN

9

Для Ubuntu 12.04 Точність: Постійне рішення

до цього повідомлення про помилку, що виникає після додавання нового сховища та оновлення списку сховищ. Це пов’язано з сервером, адреса якого більше не дійсна. Тому просто змініть адресу на хорошу.

  1. Відкрийте файл ~/.gnupg/gpg.confза допомогою текстового редактора.

    У терміналі: gedit ~/.gnupg/gpg.conf

  2. потім у цьому файлі знайдіть такий жирний рядок (116-й рядок) (який має бути типово наступним):

    [...]
    keyserver hkp: //keys.gnupg.net
    # keyserver mailto: pgp-public-keys@keys.nl.pgp.net
    # keyserver ldap: //keyserver.pgp.com

  3. потім додайте наступний жирний рядок, щоб нарешті дати такий результат:

    (додайте # у другий рядок, як далі, щоб прокоментувати стару адресу)

    [...] keyserver hkp: //keys.gnupg.net # keyserver mailto: pgp-public-keys@keys.nl.pgp.net # keyserver ldap: //keyserver.pgp.com
    keyserver http://keyserver.ubuntu.com
    #

  4. Збережіть файл та спробуйте оновити ще раз:

    У терміналі: sudo apt-get update


7

На основі неларної відповіді:

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

Найпростіший спосіб - це за допомогою 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 Manager від Dash

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

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

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

Двічі клацніть на розширеному варіанті

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

Клацніть Спробувати імпортувати всі пропущені ключі GPG

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

Клацніть ОК, щоб виправити це


4

Спочатку введіть наступну команду в термінал

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

потім оновіть вашу систему, ввівши в терміналі наступну команду

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

після цього помилок не повинно бути, і все повинно працювати нормально.


2

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

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

Я зіткнувся з тією ж проблемою, додавши 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

Довідка :


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

1

Я хотів автоматично виправити подібні помилки в скрипті 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

0

Якщо у вас є щось подібне:

# 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



-1

Ця проблема у мене виникла, коли я встановив 12.04 за допомогою німецьких налаштувань. Потім у списку сховищ за замовчуванням використовуються німецькі сховища дзеркал. У такому випадку ви можете відредагувати список сховищ та змінити всі німецькі сховища дзеркал на стандартні сховища Ubuntu.

Можна використовувати наступний метод:

sudo nano /etc/apt/sources.list

Шукайте та замінюйте в Nano за допомогою Alt-r

Пошук (для заміни): /de.

Замінити: /

Замінити всіх (натисніть A)

Зберегти файл Ctrl-x

Потім оновіть вашу систему, ввівши в терміналі таку команду:

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

Після цього помилок не повинно бути, і все повинно працювати нормально.


2
Це насправді не відповідає на питання ОП, особливо враховуючи, що вони не використовували джерела de.
Кевін Боуен
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.