Comment réparer les clés GPG manquantes?

154

Je viens d’installer Ubuntu 12.04 et j’ai ajouté un peu de repo, et apt-get updatej’ai manqué la clé gpg.

Suivre la commande semble ne pas fonctionner pour moi:

apt-get update 2> /tmp/keymissing; for key in $(grep "NO_PUBKEY" /tmp/keymissing |sed "s/.*NO_PUBKEY //"); do echo -e "\nProcessing key: $key"; gpg --keyserver subkeys.pgp.net --recv $key && sudo gpg --export --armor $key | apt-key add -; done

Comment régler ce problème?

Fih
la source
1
Il serait bon que les réponses à cette question comprennent pourquoi cette erreur se produit en premier lieu et ce qu'il faut faire pour l'éviter à l'avenir.
Flimm
J'ai résolu mon problème en utilisant Y-ppa-manager. Merci à Ashu pour la solution!
1
Solution détaillée avec captures d'écran opensourceforgeeks.blogspot.in/2013/04/…
Aniket Thakur
1
Connexes: askubuntu.com/q/13065/178596
Wilf

Réponses:

222

J'ai aimé cette solution, re-télécharger les clés manquantes à partir du serveur de clés Ubuntu.

Pour Ubuntu

Dans mon cas

 Reading package lists... Done  
 W: GPG error: http://ppa.launchpad.net precise 
 Release: The following signatures couldn't be verified because the public key is not available: 
 NO_PUBKEY 2EA8F35793D8809A

Voici la commande pour ajouter la clé manquante mentionnée dans le message d'erreur.

sudo apt-key adv --keyserver ha.pool.sks-keyservers.net --recv-keys 2EA8F35793D8809A

Donc, je prends la clé manquante 2EA8F35793D8809Aet demande au keyserver.ubuntu.com de l'ajouter à la liste des clés que j'ai dans apt.

Pour linux mint
Votre serveur de clés est légèrement différentkeyserver.linuxmint.com

sudo apt-key adv --recv-key --keyserver keyserver.linuxmint.com "missing key"

Serveurs de clés alternatifs à essayer
keyserver.ubuntu.com

Nelaaro
la source
1
askubuntu.com/a/136735/10998 n'a pas fonctionné pour moi.
Nelaaro
5
Y at-il des implications en termes de sécurité? Je suis en train de télécharger une clé publique sur http, non?
Ajedi32
1
@iamcreasy, afin de prouver aux installations Ubuntu que les packages que vous installez sont sécurisés et qu'aucun logiciel malveillant ne leur est associé, chaque package est signé par le serveur de clés Ubuntu. Votre installateur vérifie donc si le paquet que vous installez provient d’une source approuvée et vérifiée. Je n'ai trouvé aucune très bonne documentation à ce sujet, mais cela pourrait aider [document gpg] ( help.ubuntu.com/community/… )
nelaaro
1
J'ai créé une fonction pour ajouter les clés nécessaires. adkeys (){ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys "$1";}Pour supprimer les clés en double ou problématiques, je suis grep -ril "pattern" /etc/apt | sudo xargs rm -f
habitué
1
Je recommande --keyserver ha.pool.sks-keyservers.net. Il s'agit d'un pool de serveurs de clés à haute disponibilité, ce qui augmente considérablement vos chances d'obtenir la clé souhaitée.
Robin aime l'oiseau
21

Il existe un logiciel appelé car Y PPA manageril peut aider à corriger les erreurs liées aux clés GPG.
Y manager PPA

À installer -

sudo add-apt-repository ppa:webupd8team/y-ppa-manager  
sudo apt-get update  
sudo apt-get install y-ppa-manager    

Une fois que vous l'avez installé, démarrez-le, puis advancesélectionnez «importer toutes les clés GPG manquantes».

Ashu
la source
2
Vous devez ajouter sudo à cette commande! sudo apt-get...
Fih
Cela a également fonctionné pour moi et je suis très impressionné par l'interface claire et facile à utiliser de Y PPA Manager. C'était une belle trouvaille, merci Ashu.
CoalaWeb
J'ai fait ce que tu dis mais rien ne s'est passé. Je veux dire que je ne trouve l'application que dans le menu.
Cristiana Nicolae
@CristianaNicolae Une fois installé, vous pouvez trouver Y PPA Manager sous Applications> Outils système.
Ashu
Désolé Ashu, j'ai vérifié et revérifié. Je ne peux toujours pas le voir là-bas. Il semble qu’il soit installé quelque part dans le système, mais pour certaines raisons, il n’apparaît nulle part dans le menu.
Cristiana Nicolae
14

Le téléchargement automatique utilisant apt-key adv --recv-keyspeut ne pas fonctionner derrière un pare-feu.

Dans ce cas, ouvrez la page Web de Ubuntu Key Server dans votre navigateur Web et recherchez la chaîne 0x<hexadecimal code of your missing key>.

Ouvrez le lien dans la section pub . Enregistrez le contenu de la clé (de -----BEGIN PGP PUBLIC KEY BLOCK-----à -----END PGP PUBLIC KEY BLOCK-----) dans un fichier.

Puis lancez:

sudo apt-key add <file-with-saved-key>

Source: http://opensourceforgeeks.blogspot.in/2013/04/w-gpg-error-httpppalaalapadnet-precise.html

Melebius
la source
12

entrez d'abord la commande suivante dans le terminal

 sudo rm /var/lib/apt/lists/* -vf

puis mettez à jour votre système en entrant la commande suivante dans le terminal

 sudo apt-get update && sudo apt-get upgrade

après cela, il ne devrait y avoir aucune erreur et tout devrait bien fonctionner.

Bharat
la source
merci pour la réponse. La solution de mon problème était à l’origine bien plus simple: tapez sudo suavant de taper ma commande ci
Fih
Bien que cela vous ait aidé, ce sudo sun'est en aucun cas la bonne approche - dans ce cas, vous sudo -sauriez fait ce dont vous aviez besoin.
Guntbert
Je pense que vous vouliez dire sudo rm /var/lib/apt/lists/* -rf(option "r" au lieu de "v")
Oliboy50
9
Utiliser les deux sudoet rmest dangereux. Utiliser les deux rmet *est dangereux. Utilisez les trois dans la même commande et un requin va vous piquer, ou vos fichiers.
JB.
Cela ne fonctionne pas pour moi.
WiSaGaN
9

Pour Ubuntu 12.04 Precise: Solution permanente

à ce message d'erreur se produisant après l'ajout d'un nouveau référentiel et la mise à jour de la liste de référentiels. Cela est dû à un serveur dont l'adresse n'est plus valide. Alors changez simplement l'adresse en une bonne adresse.

  1. Ouvrez le fichier ~/.gnupg/gpg.confavec un éditeur de texte.

    En terminal: gedit ~/.gnupg/gpg.conf

  2. puis, dans ce fichier, trouvez la ligne en gras suivante (116e ligne) (qui devrait être la valeur par défaut comme suit):

    [...]
    keyserver hkp: //keys.gnupg.net
    # keyserver mailto: [email protected]
    # keyserver ldap: //keyserver.pgp.com

  3. puis ajoutez la ligne en gras suivante pour obtenir finalement le résultat suivant:

    (ajoutez # à la deuxième ligne comme suit pour commenter l'ancienne adresse)

    [...] keyserver hkp: //keys.gnupg.net # keyserver mailto: [email protected] # keyserver ldap: //keyserver.pgp.com
    keyserver http://keyserver.ubuntu.com
    #

  4. Enregistrez le fichier et essayez de mettre à jour à nouveau:

    En terminal: sudo apt-get update

blitzter47
la source
7

Basé sur la réponse Nelaar:

sudo apt-get update 2>&1 1>/dev/null | sed -ne 's/.*NO_PUBKEY //p' |
while read key; do
    echo 'Processing key:' "$key"
    sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys "$key"
done

Le script sauvegarde toutes les erreurs dans un fichier temporaire, puis les parcourt en important les clés manquantes.

Zafarella
la source
6

Le moyen le plus simple est d'utiliser Y PPA Manager.

sudo add-apt-repository ppa:webupd8team/y-ppa-manager
sudo apt-get update
sudo apt-get install y-ppa-manager 

Ouvrez Y PPA Manager à partir de Dash

entrez la description de l'image ici

Entrez votre mot de passe administrateur

entrez la description de l'image ici

Double-cliquez sur l'option avancée

entrez la description de l'image ici

Cliquez sur Essayer d'importer toutes les clés GPG manquantes.

entrez la description de l'image ici

Cliquez OK pour le réparer

Qasim
la source
4

Commencez par entrer la commande suivante dans le terminal

sudo rm /var/lib/apt/lists/* -vf

puis mettez à jour votre système en entrant la commande suivante dans le terminal

sudo apt-get update && sudo apt-get upgrade

après cela, il ne devrait y avoir aucune erreur et tout devrait bien fonctionner.

DaniilPiter
la source
2

Ce qui a bien fonctionné pour moi, c’est de supprimer la clé d’abord, puis de la réinstaller. Pour y parvenir, j'ai fait ce qui suit:

root@ > ~: sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 630239CC130E1A7FD81A27B140976EAF437D05B5

supprimer avec

root@ > ~: sudo apt-key del 630239CC130E1A7FD81A27B140976EAF437D05B5

Ensuite, réinstallez en tapant

root@ > ~: sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 630239CC130E1A7FD81A27B140976EAF437D05B5
QuixRhyno
la source
1

J'ai rencontré le même problème, en ajoutant un ppa ( ppa:nathandyer/vocal-stable), cela a cassé mes référentiels. L’auteur de Web Upd8 m'a expliqué comment essayer de résoudre ce problème. Voici ses étapes qui m'ont fonctionné.

Sauvegardez vos .gpgclés, juste au cas où quelque chose se passe mal.

Permet de créer un dossier dans lequel nous hébergerons notre sauvegarde.

  • mkdir ~/gpg-backups

    Cela sauvegarde tous les fichiers du /etc/apt/trusted.gpg.d/dossier.

  • sudo cp /etc/apt/trusted.gpg.d/*.* ~/gpg-backups/

Maintenant, nous allons enlever toutes les .gpgclés.

  • sudo rm /etc/apt/trusted.gpg.d/

  • sudo cp /etc/apt/trustdb.gpg ~/gpg-backups/

  • sudo rm /etc/apt/trustdb.gpg

dans Logiciels et mises à jour, sous l'onglet "Authentification", cliquez sur "Restaurer les paramètres par défaut".

Installer le gestionnaire y-ppa pour importer toutes les clés GPG manquantes

sudo add-apt-repository ppa:webupd8team/y-ppa-manager
sudo apt-get update
sudo apt-get install y-ppa-manager

Référence :

lame19899
la source
1
Une ligne semble contenir une erreur, doit être sudo rm /etc/apt/trusted.gpg.d/*. Il *est impossible d'omettre la fin de liste, car vous ne pouvez pas supprimer les répertoires non vides rmlorsque l' -roption n'est pas spécifiée .-- Ah, et vous pouvez tuer 2 oiseaux avec une pierre par ligne sudo mv /etc/apt/trustdb.gpg ~/gpg-backups/. Parce que si vous déplacez le fichier, vous n’avez plus besoin rmdu fichier source par la suite.
erreur de syntaxe le
1

Je voulais réparer automatiquement les erreurs comme celle-ci dans un script bash. Pour ceux qui sont intéressés, cela devrait faire l'affaire:

sudo apt-get update 2> /tmp/keymissing
if [ -f /tmp/keymissing ]
then
    for key in $(grep "NO_PUBKEY" /tmp/keymissing |sed "s/.*NO_PUBKEY //")
        do 
        echo -e "\nProcessing key: $key"
        sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys $key
        sudo apt-get update
    done
    rm /tmp/keymissing
fi
utilisateur2304170
la source
0

Si vous avez quelque chose comme ça:

# aptitude update
...
Ign http://archive.canonical.com wily/partner Translation-en_US
Fetched 422 kB in 3s (130 kB/s)
W: GPG error: http://ubuntu.volia.net wily InRelease: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 40976EAF437D05B5 NO_PUBKEY 3B4FE6ACC0B21F32

Tout d'abord essayer:

# sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 3B4FE6ACC0B21F32

La sortie de la dernière commande peut être:

gpg: keyblock resource `/etc/apt/trusted.gpg.d/webupd8team_ubuntu_experiments.gpg': resource limit
gpg: keyblock resource `/etc/apt/trusted.gpg.d/webupd8team_ubuntu_gthumb.gpg': resource limit

Donc, vous devez aller à /etc/apt/trusted.gpg.d/et enlever les clés inutilisées et puis répéter apt-key advetaptitude update

ipeacocks
la source
0

Courir wget -q -O - https://dl.google.com/linux/linux_signing_key.pub | sudo apt-key add -

Towfiqpiash
la source
-1

Ce problème m'est survenu lorsque j'ai installé 12.04 avec les paramètres allemands. La liste de référentiels utilise alors par défaut les référentiels en miroir allemand. Si tel est le cas, vous pouvez modifier la liste des référentiels et modifier tous les référentiels miroirs allemands en référentiels standard Ubuntu.

Vous pouvez utiliser la méthode suivante:

sudo nano /etc/apt/sources.list

Rechercher et remplacer dans Nano en utilisant Alt-r

Recherche (à remplacer): /de.

Remplacer par: /

Remplacer tout (presse A)

Enregistrer le fichier Ctrl-x

Puis mettez à jour votre système en entrant la commande suivante dans le terminal:

sudo apt-get update && sudo apt-get upgrade

Après cela, il ne devrait y avoir aucune erreur et tout devrait bien fonctionner.

taufan
la source
2
Cela ne répond pas vraiment à la question des PO, d'autant plus qu'ils n'utilisaient pas de sources.
Kevin Bowen