web-dev-qa-db-fra.com

Comment réparer la clé gpg manquante même si elle aurait dû être importée?

Je change la façon dont j'installe docker sur un groupe de machines comme indiqué ici . Cela a bien fonctionné sur l'un, mais celui-ci se comporte étrangement.

J'ai importé la clé:

Sudo apt-key adv --keyserver hkp://pgp.mit.edu:80 --recv-keys 58118E89F3A912897C070ADBF76221572C52609D
Executing: gpg --ignore-time-conflict --no-options --no-default-keyring --homedir /tmp/tmp.uUGtmucAUd --no-auto-check-trustdb --trust-model always --keyring /etc/apt/trusted.gpg --primary-keyring /etc/apt/trusted.gpg --keyring /etc/apt/trusted.gpg.d/atareao-telegram.gpg --keyring /etc/apt/trusted.gpg.d/neovim-ppa-unstable.gpg --keyring /etc/apt/trusted.gpg.d/nilarimogard-webupd8.gpg --keyring /etc/apt/trusted.gpg.d/ondrej-php-7_0.gpg --keyring /etc/apt/trusted.gpg.d/shutter-ppa.gpg --keyring /etc/apt/trusted.gpg.d/trustdb.gpg --keyring /etc/apt/trusted.gpg.d/trusted.gpg --keyring /etc/apt/trusted.gpg.d/vincent-c-ponysay.gpg --keyring /etc/apt/trusted.gpg.d/webupd8team-y-ppa-manager.gpg --keyring /etc/apt/trusted.gpg.d/xorg-edgers-ppa.gpg --keyserver hkp://pgp.mit.edu:80 --recv-keys 58118E89F3A912897C070ADBF76221572C52609D
gpg: requesting key 2C52609D from hkp server pgp.mit.edu
gpg: [don't know]: invalid packet (ctb=01)
gpg: keydb_get_keyblock failed: eof
gpg: key 2C52609D: public key "Docker Release Tool (releasedocker) <[email protected]>" imported
gpg: Total number processed: 1
gpg:               imported: 1  (RSA: 1)

pourtant Sudo apt-get update échoue s'il manque une clé:

w: GPG error: https://apt.dockerproject.org ubuntu-trusty Release: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY F76221572C52609D

Qu'est-ce que je rate?

J'ai également essayé la réponse actuellement fournie, mais après la suppression du fichier confidence.gpg, je ne peux pas ajouter les clés avec

root@fluttershy:/etc/apt# rm trusted.gpg
root@fluttershy:/etc/apt# apt-key update
gpg: [don't know]: invalid packet (ctb=01)
gpg: keydb_get_keyblock failed: eof
gpg: key 437D05B5: public key "Ubuntu Archive Automatic Signing Key <[email protected]>" imported
gpg: [don't know]: invalid packet (ctb=01)
gpg: keydb_get_keyblock failed: eof
gpg: key FBB75451: public key "Ubuntu CD Image Automatic Signing Key <[email protected]>" imported
gpg: [don't know]: invalid packet (ctb=01)
gpg: keydb_get_keyblock failed: eof
gpg: key C0B21F32: public key "Ubuntu Archive Automatic Signing Key (2012) <[email protected]>" imported
gpg: [don't know]: invalid packet (ctb=01)
gpg: keydb_get_keyblock failed: eof
gpg: key EFE21092: public key "Ubuntu CD Image Automatic Signing Key (2012) <[email protected]>" imported
gpg: Total number processed: 4
gpg:               imported: 4  (RSA: 2)
root@fluttershy:/etc/apt#
4
k0pernikus

gpg échoue avec invalid packet (ctb=01)/keydb_get_keyblock failed: eof. Cela signifie généralement que votre trousseau de clés GPG est endommagé. Le moyen le plus rapide de résoudre le problème consiste à le supprimer ou à le restaurer à partir d'une sauvegarde.

Voici quelques commandes utiles pour vous:

  • Pour lister toutes les clés actuellement dans APT trousseaux de clés:

    apt-key list
    
  • Pour restaurer trusted.gpg à partir de APT sauvegarde automatique:

    cp /etc/apt/trusted.gpg{~,}
    
  • Pour supprimer trusted.gpg et le recréer avec les clés de l'archive Ubuntu:

    rm /etc/apt/trusted.gpg
    apt-key update
    

Dans toutes les commandes que j'ai utilisées /etc/apt/trusted.gpg, mais sachez qu'il peut y avoir d'autres trousseaux de clés à l'intérieur de /etc/apt/trusted.gpg.d/.

APT utilise tous les trousseaux de clés en même temps, comme vous pouvez le constater en examinant votre sortie:

Executing: gpg [...] \
  --keyring /etc/apt/trusted.gpg \
  --primary-keyring /etc/apt/trusted.gpg \
  --keyring /etc/apt/trusted.gpg.d/atareao-telegram.gpg \
  --keyring /etc/apt/trusted.gpg.d/neovim-ppa-unstable.gpg \
  --keyring /etc/apt/trusted.gpg.d/nilarimogard-webupd8.gpg \
  [...]

Un porte-clés endommagé rend GPG triste et aucun des porte-clés (même les bons) n'est digne de confiance. En conséquence, aucune des clés considérées.

6
Andrea Corbellini

Plus précisément, pour le trousseau de clés Docker 58118E89F3A912897C070ADBF76221572C52609D, ajoutez le serveur de clés:

Sudo apt-key adv --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys 58118E89F3A912897C070ADBF76221572C52609D
4
pocheptsov