“Pas de clé publique disponible” sur apt-get update

133

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
Ce gars brésilien
la source
2
... et cette corde que vous avez élidé est un bit important. Cela nous permettrait d'identifier les clés qui vous manquent (en supposant que l'installation des packages de trousseau de clés, de préférence à partir de supports de confiance, ne soit d'aucune utilité pour ruda)
derobert
1
Vous ne devriez pas laisser votre chat marcher sur le clavier comme ça. :-) ⁠
G-Man

Réponses:

173

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

Si vous avez besoin d'une clé, vous devez l'obtenir, et où la trouver, elle se trouve 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
mariotomo
la source
Cela a fonctionné pour moi aussi et pas d'autres réponses ici ..
Sai Kiran
@starbeamrainbowlabs maintenant c'est le cas! =)
Ce Brésilien Guy
@ThatBrazilianGuy: D
starbeamrainbowlabs
4
Existe-t-il un moyen de déterminer si la clé reçue est une légende telle que je puisse effectuer une opération aussi dangereuse, comme ajouter l'apt-trust global à une clé arbitraire? Existe-t-il un moyen de vérifier la crédibilité de la clé après sa réception? Quelles sont les étapes à suivre pour effectuer la vérification de clé? Par exemple, la seule chose que vous avez est ftp-master.debian.org/keys/ziyi_key_2002.asc alors comment accéder à la clé la plus récente sans rompre la chaîne de confiance?
Tino
1
@ThatBrazilianGuy: Le fait que ce soit votre question ne vous donne pas le droit de vandaliser une réponse.
G-Man le
76

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 résoudra le problème:

sudo aptitude install debian-archive-keyring

Références

Ce gars brésilien
la source
Les 8 derniers chiffres hexadécimaux sont partagés avec cela, donc il se plaint probablement de wheezy. Malheureusement, le PO n'a pas choisi cette adresse: pub 4096R / 46925553 2012-04-27 [expire le: 2020-04-25] uid Clé de signature automatique de Debian Archive (7.0 / wheezy) <[email protected]>
Martin Dorey
5
Est-ce debian-keyringvraiment nécessaire? Cela a fonctionné pour moi avec juste debian-archive-keyring.
x-yuri
Sans surprise, différents nombres d'hex peuvent nécessiter des solutions différentes. J'ai mis des guillemets autour du numéro dans ma recherche Google pour forcer une recherche textuelle de ce numéro. J'ai atterri sur cette page, ce qui a résolu mon problème: reddit.com/r/linux4noobs/comments/4grdo7/… (la réponse de @ mariotomo peut avoir travaillé aussi - je n'ai pas essayé)
Michael Scheper
debian-keyringn'est pas nécessaire.
x-yuri
38

Je recommande:

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

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

Greg Alexander
la source
1
C'était tout ce dont j'avais besoin - fonctionnait très bien pour moi!
harperville
Travailler comme un charme!
Wilbeibi
1
C’était la meilleure solution pour moi car elle s’intégrait mieux avec un conteneur Docker. Cependant, notez que (du moins dans Docker), vous ne devez installer que ce paquet d’abord, puis en faire une seconde apt-get update, puis installer les paquetages que vous voulez vraiment.
Malvineous
Debian 10: Avertissement: 'apt-key update' est obsolète et ne doit plus être utilisé! Remarque: dans votre distribution, cette commande est un no-op et peut donc être supprimée en toute sécurité
aexl
En fait, vous devrez peut-être installer debian-archive-keyring même si vous avez déjà installé debian-keyring sur sa dernière version
Ángel
17

L'erreur Aucune clé publique n'est disponible pour les ID de clé suivants, ce qui indique un problème de sécurité grave : l'intégrité d'un package de système d'exploitation ne peut pas être vérifiée 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

Quel est dans cet exemple 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 -
Ivan Ogai
la source
Fixé pour moi :) Merci! Mais juste curieux, qu'est-ce qui n'allait pas? Que fait la première commande et que fait la seconde? Cela devrait-il résoudre tous les problèmes? Mon problème était aussi avec Google Chrome.
Rohan
Et la première commande change-t-elle quelque chose avec gpg? Il dit qu'il a créé un fichier de configuration gpg.conf, et je ne sais pas si je le souhaite.
Rohan
La première recherche la clé dans votre liste de paquets pour voir le paquet incriminé. Le second télécharge la clé et l’ajoute à votre système. La première commande n'est pas utile dans ce cas, mais c'est une bonne approche générale.
Marco Sulla
3

J'ai rencontré le même problème dans Linux Mint (version du noyau 3.13.0-24) et j'ai pu le résoudre à l'aide des commandes suivantes:

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 cette réponse.

Ankur Kumar
la source
1

Comme alternative:

$ sudo apt-get install debian-keyring debian-archive-keyring
$ sudo apt-key update
abdiansah.wordpress.com
la source
6
S'il vous plaît, ne publiez pas votre blog dans vos réponses. C'est ce que votre bio est pour.
slm
1

Ma réponse est une légère mise à niveau (IMHO, YMMV) sur @mariotomo (qui j'ai voté) dans le scriptlet bash suivant

  • utilise également gpg
  • paramètre plus
  • (utilise également un serveur de clés différent, bien que dans ce cas, je pense que cela ne fait aucune différence)

Vous pouvez également commenter la evalligne pour un "essai à blanc": le scriptlet ne vous montrera alors que ce qu'il a l'intention de faire, sans le faire réellement. Assurez-vous simplement de changer la valeur de NO_PUBKEYchaque fois que vous utilisez ceci (vous pouvez aussi changer à votre KEYSERVERguise):

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
la source
0

Exécuter killall -q gpg-agentsi les autres solutions ne fonctionnent pas. Cela peut marcher.

Je recevais une erreur similaire pour un dépôt PPA sur Ubuntu 18.04 et après avoir essayé diverses solutions sur Internet le mois dernier, je suis tombé sur l'agent gpg et je l'ai tué. Ensuite, les dépôts de PPA ont commencé à se mettre à jour sudo apt-get update. Je sais que cela peut compromettre la sécurité, mais vous avez parfois besoin d’un package d’un PPA, et GPG ne vous le permet pas. Plus tard, vous redémarrez l'agent-gpg et les choses reviennent à la normale.

MSharq
la source
-1

Cela a fonctionné pour moi:

Remède rapide:

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

( Source )

Jakob
la source