«нет открытого ключа» при обновлении apt-get

При выполнении apt-get update появляется следующая ошибка:

[email protected]:/home/aluno# apt-get update
Atingido http://sft.if.usp.br squeeze Release.gpg
Ign http://sft.if.usp.br/debian/ squeeze/contrib Translation-en
Ign http://sft.if.usp.br/debian/ squeeze/contrib Translation-pt
Ign http://sft.if.usp.br/debian/ squeeze/contrib Translation-pt_BR

(...)

Obter:10 http://security.debian.org squeeze/updates/non-free i386 Packages [14 B]
Baixados 612 kB em 4s (125 kB/s)                    
Lendo listas de pacotes... Pronto
There is no public key available for the following key IDs: 8B48AD6246925553
112 голосов | спросил That Brazilian Guy 14 Maypm13 2013, 21:37:14

8 ответов


146

Другие ответы будут работать или нет, в зависимости от того, присутствует или нет ключ «8B48AD6246925553» в указанных им пакетах.

Если вам нужен ключ, вам нужно получить этот ключ, и где его найти, он находится на ключевом сервере (возможно, будет работать любой сервер ключей):

sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 8B48AD6246925553`
ответил mariotomo 26 Maypm15 2015, 22:10:17
74

Я рекомендую вам выполнить ответ @ mariotomo, а не следующие шаги:


Согласно Ошибка открытых ключей Debian 2

ответил That Brazilian Guy 14 Maypm13 2013, 21:39:53
33

Я рекомендую

$ sudo apt-get install debian-archive-keyring
$ sudo apt-key update

Это лучше, чем другие подходы, потому что он не устанавливает «debian-keyring», что является большим и в 99% случаев ненужным.

ответил Greg Alexander 12 J0000006Europe/Moscow 2015, 17:54:58
17

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

Если сообщение было:

There is no public key available for the following key IDs: 1397BC53640DB551

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

for n in `ls /var/lib/apt/lists/*gpg`; do echo "$n" ; gpg --list-packets "$n" | grep 1397BC53640DB551; done

В этом примере репозиторий Google для Chrome:

/var/lib/apt/lists/dl.google.com_linux_chrome_deb_dists_stable_Release.gpg

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

wget -q -O - https://dl.google.com/linux/linux_signing_key.pub | apt-key add -
ответил Ivan Ogai 28 PMpThu, 28 Apr 2016 13:42:15 +030042Thursday 2016, 13:42:15
2

Я столкнулся с той же проблемой в Linux Mint (Kernel Version 3.13.0-24), и я смог ее решить, используя команды:

gpg --recv-keys <the-reported-key>

gpg --export <the-reported-key> | apt-key add -

Точки, которые следует отметить:

1) Команды выполнялись в порядке 2) Команды были вызваны как root пользователь

Предоставлено этот ответ.

ответил Ankur Kumar 29 J0000006Europe/Moscow 2016, 12:16:45
1

В качестве альтернативы:

$ sudo apt-get install debian-keyring debian-archive-keyring
$ sudo apt-key update
ответил abdiansah.wordpress.com 6 SatEurope/Moscow2014-12-06T05:17:31+03:00Europe/Moscow12bEurope/MoscowSat, 06 Dec 2014 05:17:31 +0300 2014, 05:17:31
1

Мой ответ - небольшое обновление (IMHO, YMMV) в @mariotomo (кто я переназначен) в следующем скрипте bash

  • также использует gpg
  • параметрирует больше
  • (также использует другой сервер ключей, хотя в этом случае я подозреваю, что это мало чем отличается)

Вы также можете прокомментировать строку eval для «сухого запуска»: сценарий будет показывать только то, что он намеревается сделать, но на самом деле не делает этого. Просто не забудьте изменить значение NO_PUBKEY каждый раз, когда вы его используете (вы также можете изменить KEYSERVER):

NO_PUBKEY='1397BC53640DB551' # CHANGE TO THE VALUE CITED IN YOUR ERROR MESSAGE!
KEYSERVER='keys.gnupg.net'

NO_PUBKEY_LEN="${#NO_PUBKEY}"
echo "NO_PUBKEY_LEN='${NO_PUBKEY_LEN}'"     # for sanity or debugging
# note following works because bash arrays have 0-based indices
NO_PUBKEY_2ND_HALF_START=$(( NO_PUBKEY_LEN/2 ))
echo "NO_PUBKEY_2ND_HALF_START='${NO_PUBKEY_2ND_HALF_START}'" # ditto
NO_PUBKEY_2ND_HALF="${NO_PUBKEY:${NO_PUBKEY_2ND_HALF_START}}"
echo "NO_PUBKEY_2ND_HALF='${NO_PUBKEY_2ND_HALF}'"             # ditto

for CMD in \
  'date' \
  "gpg --keyserver ${KEYSERVER} --recv-keys ${NO_PUBKEY_2ND_HALF}" \
  'date' \
  "gpg -a --export ${NO_PUBKEY_2ND_HALF} | sudo apt-key add -" \
; do
  echo -e "${CMD}"
  eval "${CMD}"
done
ответил TomRoche 29 AMpFri, 29 Apr 2016 03:36:40 +030036Friday 2016, 03:36:40
-1

Это сработало для меня:

  

Быстрое исправление:

sudo rm -f /etc/apt/trusted.gpg

( Источник )

ответил Jakob 21 J000000Friday17 2017, 00:31:42

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

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132