Как исправить GPG ошибку "NO_PUBKEY"?

Я добавил несколько дополнительных репозиториев с программой Software Sources. Но когда я перезагружаю пакетную базу данных, я получаю ошибку типа:

W: GPG error: http://ppa.launchpad.net trusty InRelease: Следующие подписи не могли быть проверены, так как открытый ключ недоступен: NO_PUBKEY 8BAF9A6F

Я знаю, что могу исправить это, используя apt-key в терминале, согласно официальной документации Ubuntu. Но я бы хотел сделать это графически. Есть ли способ сделать это без использования терминала?

464
задан 28 July 2017 в 23:40

13 ответов

Самым простым способом справиться с этим сейчас является Y-PPA-Manager (который теперь объединяет скрипт launchpad-getkeys с графическим интерфейсом).

  1. Чтобы установить его, сначала добавьте репозиторий webupd8 для этой программы:

     sudo add-apt-repository ppa: webupd8team / y-ppa-manager
     
  2. Обновите список программного обеспечения и установите Y-PPA-Manager:

     sudo apt-get update
    sudo apt-get install y-ppa-manager
     
  3. Запустите y-ppa-manager (например, введите y-ppa-manager , затем нажмите клавишу ввода).

  4. Когда появится главное окно y-ppa-manager, нажмите «Дополнительно».

  5. В списке дополнительных задач выберите «Попробовать импортировать все отсутствующие ключи GPG» и нажмите OK.

    Готово! Как говорится в диалоговом окне с предупреждением, когда вы начинаете операцию, это может занять некоторое время (около 2 минут для меня) в зависимости от того, сколько у вас PPA и скорости вашего соединения.

237
ответ дан 5 January 2021 в 23:57

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

deb [signed-by=/usr/share/keyrings/SOMETHING.gpg] https://download.something.org/something something/

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

chmod 644 /usr/share/keyrings/*

после получения файла связки ключей. Основная проблема заключалась в использовании sudo , когда я уже был пользователем root . Действительно странно, поскольку все это все равно root, и нигде не было сообщения об ошибке разрешения доступа ... но это исправило его

0
ответ дан 5 January 2021 в 23:57

Убедитесь, что у вас установлен apt-transport-https :

dpkg -s apt-transport-https > /dev/null || bash -c "sudo apt-get update; 
sudo apt-get install apt-transport-https -y" 

Добавить репозиторий:

curl https://repo.skype.com/data/SKYPE-GPG-KEY | sudo apt-key add - 
echo "deb [arch=amd64] https://repo.skype.com/deb stable main" | sudo tee /etc/apt/sources.list.d/skype-stable.list 

Установить Skype для Linux:

sudo apt-get update 
sudo apt-get install skypeforlinux -y

Источник: https : //community.skype.com/t5/Linux/Skype-for-Linux-Beta-signatures-couldn-t-be-verified-because-the/td-p/4645756

5
ответ дан 5 January 2021 в 23:57

У меня была такая же проблема с клиентом DynDNS Updater.

Оказалось, что это просто просроченные ключи.

Переустановка программного обеспечения (загрузка нового .deb с веб-сайта, затем использование Центра программного обеспечения для переустановки) устранена проблема.

Сообщение об ошибке для справки:

W: GPG error: http://cdn.dyn.com stable/ Release: The following signatures were invalid: KEYEXPIRED 141943.......
0
ответ дан 5 January 2021 в 23:57

Хорошо! Я наконец нашел способ!

Я протестировал все методы, чтобы исправить ошибку GPG NO_PUBKEY , и у меня ничего не работает.

Я удалил все содержимое папки / etc / apt / trust.gpg.d

cd /etc/apt/trusted.gpg.d
sudo rm -R *
sudo apt-get update

И я использую метод Y-PPA-Manager , потому что мне лень создавать все ключи публикации вручную (слишком много): http: //www.unixmen .com / fix-w-gpg-error-no_pubkey-ubuntu /

снова запустите sudo apt-get update и, наконец, все теперь отлично работает! Танки!

Источник: сообщение № 17 на https://bugs.launchpad.net/ubuntu/+source/apt/+bug/1263540

4
ответ дан 5 January 2021 в 23:57

В PPA WebUpd8 входит крошечный скрипт, который я свяжу как одну загрузку .deb, поэтому вам не нужно добавлять весь PPA, который автоматически импортирует все отсутствующие ключи GPG.

Загрузите и установите Launchpad-getkeys (игнорируйте ~ natty в его версии, он работает со всеми версиями Ubuntu от Karmic до Oneiric). После установки откройте терминал и введите:

sudo launchpad-getkeys

Если вы находитесь за прокси, все немного сложнее, поэтому см. this для получения дополнительной информации

10
ответ дан 5 January 2021 в 23:57

Я столкнулся с той же проблемой при установке Heroku. Ссылка ниже решила мою проблему -

http://naveenubuntu.blogspot.in/2011/08/fixing-gpg-keys-in-ubuntu.html

После исправления проблемы NO_PUBKEY , осталась проблема, указанная ниже

W: GPG error: xhttp://toolbelt.heroku.com ./ Release: The following signatures were invalid: BADSIG C927EBE00F1B0520 Heroku Release Engineering <release@heroku.com>

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

sudo -i  
apt-get clean  
cd /var/lib/apt  
mv lists lists.old  
mkdir -p lists/partial  
apt-get clean  
apt-get update  

Источник - Ссылка для решения

7
ответ дан 5 January 2021 в 23:57

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

-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: GnuPG v1.4.1 (GNU/Linux)
[...]
-----END PGP PUBLIC KEY BLOCK-----

Такой текст, например, отображается на http://deb.opera.com. Скопируйте отрывок, вставьте его в пустой файл, созданный на рабочем столе. В результате получим файл ключа.

Затем продолжим с импортом ключа:

  • Приложения > Центр программного обеспечения
  • Редактирование > Источники программного обеспечения..., введите пароль
  • Вкладка "Аутентификация", нажмите кнопку "Импорт файла ключа..."
  • Выберите сохраненный файл ключа и нажмите кнопку "ОК".

Теперь вы можете удалить ранее созданный ключевой файл.

4
ответ дан 5 January 2021 в 23:57

Вам нужно получить и импортировать ключ.

Чтобы получить ключ от PPA, посетите страницу запуска PPA. На каждой странице PPA в Launchpad Вы найдете эту ссылку (2), после нажатия на "Техническая информация об этой PPA" (1):

image 1

Следуйте по ней и нажмите на ссылку с идентификатором ключа (3):

image 2

Сохраните страницу, это ваш ключевой файл.


Теперь пришло время импортировать его:

  • Приложения > Центр программного обеспечения,
  • Редактирование > Исходные тексты программного обеспечения. ...,
  • Введите пароль,
  • Перейдите на вкладку Аутентификация и нажмите кнопку Импорт файла ключа..., наконец
  • Выберите сохраненный ключевой файл и нажмите OK.
37
ответ дан 5 January 2021 в 23:57

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

Для решения этой проблемы используйте следующую команду:

gpg --keyserver hkp://keyserver.ubuntu.com:80 --recv 9BDB3D89CE49EC21

которая извлекает ключ из сервера ключей ubuntu. А затем эта:

gpg --export --armor 9BDB3D89CE49EC21 | sudo apt-key add -

, которая добавляет ключ к apt trusted ключам.

Решение можно найти здесь и здесь и здесь.

57
ответ дан 5 January 2021 в 23:57

apt может обрабатывать только 40 ключей в /etc/apt/trusted.gpg.d. 41, и вы получите ошибку GPG «открытый ключ не найден», даже если вы выполните все шаги, чтобы добавить недостающий ключ (и).

Проверьте, есть ли в этом файле неиспользуемые ключи из ppa ( s) вы больше не используете. Если все они уже используются, рассмотрите возможность удаления некоторых ppa (ов) вместе с соответствующими ключевыми файлами в /etc/apt/trusted.gpg.d

Кроме того, использование

sudo apt-key adv

считается угрозой безопасности и не рекомендуется поскольку вы « подрываете всю концепцию безопасности, поскольку это небезопасный способ получения ключей по разным причинам (например: hkp - это протокол открытого текста, короткие и даже длинные идентификаторы ключей могут быть подделаны…) ». http://ubuntuforums.org/showthread.php?t=2195579

Я считаю, что правильный способ добавления недостающих ключей (например, 1ABC2D34EF56GH78) -

gpg --keyserver hkp://keyserver.ubuntu.com:80 --recv 1ABC2D34EF56GH78
gpg --export --armor 1ABC2D34EF56GH78 | sudo apt-key add -
13
ответ дан 5 January 2021 в 23:57

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

sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys <PUBKEY>

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

Затем обновите

sudo apt-get update

ALTERNATE METHOD:

sudo gpg --keyserver pgpkeys.mit.edu --recv-key  <PUBKEY>
sudo gpg -a --export <PUBKEY> | sudo apt-key add -
sudo apt-get update

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

684
ответ дан 5 January 2021 в 23:57

2021 август. Вот что сработало для меня.

cd /etc/apt/trusted.gpg.d
sudo rm -R *
sudo apt-get update

Последняя строка будет вызывать ошибки отсутствия ключей.

Затем вам нужно будет вручную установить каждый из ключей, перечисленных в ошибках. например, если ошибка говорит, что отсутствующий PUB_KEY - 9BDB3D89CE49EC21,

Вы можете вручную добавить ключ командой sudo apt-key adv --keyserver keyserver. ubuntu.com --recv-keys 9BDB3D89CE49EC21

Повторно запустите sudo apt-get update

Повторите процесс для нового ключа, который появился в ошибке

Скажем, если новый ключ был 3BDB3D89CE49EC24, Просто вручную добавьте ключ командой sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 3BDB3D89CE49EC24

Запустите sudo apt-get update и повторяйте процесс, пока все ошибки не исчезнут.

Затем вернитесь на сайт пакета, который вы пытались установить, и повторите процесс установки.

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

Не забудьте проголосовать, если это сработает для вас. И это должно сработать

0
ответ дан 4 September 2021 в 12:43

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

Похожие вопросы: