web-dev-qa-db-fra.com

"aucune clé publique disponible" sur la mise à jour apt-get

Lors de l'exécution apt-get update, J'obtiens l'erreur suivante:

root@ADS3-Debian6:/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
141

Les autres réponses fonctionneront, ou non, selon que la clé "8B48AD6246925553" est présente ou non dans les packages qu'ils indiquent.

Si vous avez besoin d'une clé, vous devez l'obtenir, et où la trouver, c'est dans un serveur de clés (très probablement n'importe quel serveur de clés fera l'affaire):

Sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 8B48AD6246925553
184
mariotomo

Je vous recommande de suivre la réponse de @ mariotomo plutôt que les étapes ci-dessous:


Selon Il n'y a pas de clé publique disponible pour l'ID de clé suivant , cela le corrigera:

Sudo aptitude install debian-archive-keyring

Références

78

Je recommande:

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

C'est mieux que d'autres approches car il n'installe pas debian-keyring, ce qui est gros et 99% du temps inutile.

40
Greg Alexander

L'erreur Il n'y a pas de clé publique disponible pour les ID de clé suivants indique un problème de sécurité grave: un package du système d'exploitation ne peut pas être vérifié pour l'intégrité avec sa clé publique, car sa clé publique est manquante.

Si le message était:

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

Vous pouvez utiliser cette commande pour savoir quel référentiel utilise la clé:

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

Dans cet exemple, qui est le référentiel de Google pour Chrome:

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

Si vous faites confiance à Google, à son gouvernement, etc., vous devez savoir où se trouve la clé et l'ajouter avec:

wget -q -O - https://dl.google.com/linux/linux_signing_key.pub | apt-key add -
17
Ivan Ogai

J'ai rencontré le même problème dans Linux Mint (Kernel Version 3.13.0-24) et j'ai pu le résoudre en utilisant les commandes:

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

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

Points à noter:

1) Les commandes ont été exécutées dans l'ordre 2) Les commandes ont été exécutées en tant qu'utilisateur root

Courtoisie this réponse.

3
Ankur Kumar

Ma réponse est une légère mise à niveau (à mon humble avis, YMMV) sur @mariotomo (que j'ai surévalué) dans le scriptlet bash suivant

  • utilise également gpg
  • paramètre plus
  • (utilise également un serveur de clés différent, mais dans ce cas, je soupçonne que cela fait peu de différence)

Vous pouvez également commenter la ligne eval pour une "exécution à sec": le scriptlet ne vous montrera alors que ce qu'il a l'intention de faire, sans le faire réellement. Veillez simplement à modifier la valeur de NO_PUBKEY chaque fois que vous utilisez ceci (vous pouvez également changer KEYSERVER comme vous le souhaitez):

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
1
TomRoche

Comme alternative:

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

Courir killall -q gpg-agent si les autres solutions ne fonctionnent pas. Cela peut fonctionner.

J'obtenais une erreur similaire pour un référentiel PPA sur Ubuntu 18.04 et après avoir essayé diverses solutions sur Internet le mois dernier, je suis juste tombé sur l'agent gpg et l'ai tué. Ensuite, les référentiels PPA ont commencé à se mettre à jour en faisant Sudo apt-get update. Je sais que cela peut compromettre la sécurité, mais parfois vous avez besoin d'un package d'un PPA, et GPG ne vous le permet tout simplement pas. Plus tard, vous redémarrez l'agent gpg et les choses reviennent à la normale.

0
MSharq