sudo apt-key adv --keyserver keyserver.ubuntu.com --recv 7F0CEB10 commande renvoie une erreur

30

J'essaie d'installer Mongodb sur Ubuntu 12 mais lorsque j'exécute cette commande:
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv 7F0CEB10
Cela a renvoyé l'erreur ci-dessous:

keyserver.ubuntu.com hôte introuvable
gpgkeys: HTTP chercher erreur 7: Impossible de se connecter: aucun fichier ou répertoire
GPG: aucune donnée OpenPGP valide n'a été trouvée
GPG: Nombre total processus: 0

J'ai désactivé le pare-feu sur Iptables, mais cela ne fonctionne pas. Y a-t-il une idée?

nyamka
la source
Votre système peut-il résoudre keyserver.ubuntu.com en tant qu'adresse IP? C'est à dire, quelle est la sortie de dig keyserver.ubuntu.com?
Xyon

Réponses:

35

Cela peut ne pas être un problème avec la recherche du serveur de clés, ce que suggère l'erreur. La commande apt-key appelle gpg, qui à son tour essaie d'accéder au serveur de clés. Apparemment, il y a un bogue dans gpg selon lequel si le serveur de clés n'a pas la clé que vous demandez, alors gpg interprète mal cela comme "hôte non trouvé".

Il se peut bien qu'un serveur de clés non réactif fasse la même chose, et j'ai vu des environnements où les serveurs de clés sont bloqués (règles de pare-feu d'entreprise), ce qui pourrait être votre cause principale s'il existe un pare-feu en amont auquel vous n'avez pas accès à.

Juste pour référence, la clé est là et le serveur de clés répond actuellement pour moi:

$ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv 7F0CEB10
Executing: gpg --ignore-time-conflict --no-options --no-default-keyring --secret-keyring /tmp/tmp.rh1myoBdSE --trustdb-name /etc/apt//trustdb.gpg --keyring /etc/apt/trusted.gpg --primary-keyring /etc/apt/trusted.gpg --keyserver keyserver.ubuntu.com --recv 7F0CEB10
gpg: requesting key 7F0CEB10 from hkp server keyserver.ubuntu.com
gpg: key 7F0CEB10: "Richard Kreuter <[email protected]>" not changed
gpg: Total number processed: 1
gpg:              unchanged: 1

Il se peut que le port soit le problème (c'était la dernière fois que je rencontrais un problème de pare-feu d'entreprise), alors essayez plutôt de le faire sur le port HTTP standard (80), voyez si cela règle les choses:

sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 7F0CEB10
Adam C
la source
4
"faire cela sur le port HTTP standard (80) à la place" est bien délicat! tks
Bill.Zhuang
1
Attention: sans SSL, vous pourriez potentiellement être touché par une attaque MitM qui vous sert une clé dont l'empreinte digitale a les mêmes huit derniers caractères ( exemple de clé d'attaque ). Une telle clé peut même ne pas être partagée publiquement, vous ne sauriez donc jamais que vous avez été mis en attente. Pour empêcher une telle attaque à partir de clés partagées publiquement, le serveur de clés de Debian a une politique stipulant que «seules les clés dans les trousseaux de clés Debian… seront retournées par ce serveur»
Adam Katz
21

J'ai rencontré le même problème car ma machine se trouve derrière un proxy d'entreprise. L'ajout du gpg --keyserver-option http-proxyfait l'affaire. Ressemble à:

sudo apt-key adv --keyserver-options http-proxy=<myProxy> --keyserver keyserver.ubuntu.com --recv 7F0CEB10
fgungnir
la source
1
Merci! Heureusement que je n'ai pas arrêté de lire en haut ...
Moraru Lilian
20

Si vous utilisez un proxy, par exemple le proxy de l'entreprise, alors la seule façon est probablement de le saisir manuellement, ce qui est assez simple. Courir:

sudo apt-get update

et obtenez l'identifiant de la pub_key. Ensuite, accédez à http://keyserver.ubuntu.com/ et recherchez la clé sous forme hexadécimale, par exemple si la clé l'est 7936A783B, puis recherchez 0x7936A783B. Cliquez sur le lien pup et copiez le contenu des clés et enregistrez-le dans un fichier txt. Accédez au terminal et accédez au fichier et exécutez:

sudo apt-key add key.txt

Si cela fonctionne, vous obtiendrez une OKrétroaction simple . Lorsque toutes les clés sont ajoutées, vous pouvez exécuter:

sudo apt-get update

Et voila!

DKo
la source
3
C'est bien; il est également possible d'utiliser l'URL que vous obtenez textuellement apt-keycomme suit:apt-key adv --fetch-keys http://keyserver.ubuntu.com/pks/lookup?op=get&search=0xD6ACA1C817B18ABC
sxc731
2
@ sxc731 - La apt-keypage de manuel indique: "Notez qu'aucune vérification n'est effectuée, il est donc facile de saper complètement l'infrastructure apt-secure (8) si elle est utilisée sans précaution." Cela signifie que vous ne voulez vraiment pas le faire sans SSL. Changez-le en --fetch-keys https://…et vous devriez être raisonnablement en sécurité.
Adam Katz
@AdamKatz très bon point, merci. Malheureusement, je ne peux pas modifier mon commentaire pour appliquer votre suggestion, mais j'ai tout de même voté ...
sxc731
L' --fetch-keysoption a échoué pour moi avec une erreur: https://keyserver.ubuntu.com/pks/lookup?op=get gpgkeys: protocol gpg non pris en charge par https: pas de gestionnaire pour le schéma de serveur de cléshttps' gpg: WARNING: unable to fetch URI https://keyserver.ubuntu.com/pks/lookup?op=get: keyserver error
miguelmorin
Merci, exactement ce que je cherchais.
Miguel Ortiz
1

La deuxième approche mentionnée dans ce lien a fonctionné pour moi. Téléchargez manuellement la clé et ajoutez-la. Le lien fournit une procédure étape par étape pour corriger l'erreur qui se produit en raison de la clé manquante.

Aniket Thakur
la source