Ajout d'une clé gpg via apt-key
échoue systématiquement depuis que je suis passé à Ubuntu 17.04 (je doute cependant que ce soit directement lié). Exemple avec clé repo de Spotify :
$ Sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys BBEBDCB318AD50EC6865090613B00F1FD2C19886
Executing: /tmp/apt-key-gpghome.wRE6z9GBF8/gpg.1.sh --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys BBEBDCB318AD50EC6865090613B00F1FD2C19886
gpg: keyserver receive failed: No keyserver available
Même chose si je supprime le hkp://
préfixe.
Contexte: j'utilise CNTLM pour gérer le proxy d'entreprise local. Les variables Env sont définies (dans /etc/environment
):
$ env | grep 3128
https_proxy=http://localhost:3128
http_proxy=http://localhost:3128
ftp_proxy=http://localhost:3128
/etc/apt/apt.conf
est configuré (les commandes apt
fonctionnent correctement):
$ cat /etc/apt/apt.conf
Acquire::http::Proxy "http://localhost:3128";
Acquire::https::Proxy "http://localhost:3128";
Acquire::ftp::Proxy "http://localhost:3128";
Enfin, le serveur de clés spécifié semble accessible:
$ curl keyserver.ubuntu.com:80
<?xml version="1.0"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>SKS OpenPGP Public Key Server</title>
</head>
<body>
[...]
Que puis-je faire ? Je ne sais même pas comment le déboguer davantage ...
Des choses que j'ai déjà essayé de faire, sans résultat:
Sudo
avec -E
(conserver env), optionapt-key adv
avec --keyserver-options http-proxy=http://localhost:3128/
option ( source )$ gpg --list-keys
pour une raison quelconque ( source )--keyserver pgp.mit.edu
)hkp://
partie (--keyserver keyserver.ubuntu.com:80
)Chose étrange, je ne vois jamais d’entrée "cntlm" dans /var/log/syslog
lors de l'exécution apt-key
.
Vous avez généralement un proxy pour ftp, http et https; Je vois là hkp: // comme une URL; il ne doit donc pas être dirigé via un proxy HTTP pur, d'où l'échec de la communication.
Utilisez-le à la place:
Sudo apt-key adv --keyserver keyserver.ubuntu.com --keyserver-options http-proxy=http://localhost:3128 --recv-keys BBEBDCB318AD50EC6865090613B00F1FD2C19886
En ce qui concerne les mises à jour du système, je vous conseille d'utiliser un APT proxy, par exemple, apt-cacher-ng
.
Une autre façon de le faire consiste à rechercher dans l'interface Web publique, avec un navigateur, par exemple sur votre poste de travail, la clé que vous souhaitez sur https://keyserver.ubuntu.com
Ouvrez le site et vous avez obtenu un formulaire. Dans ce cas, j'ai utilisé la "chaîne de recherche" "Spotify"; puis sélectionnez "Rechercher"; il listera plusieurs clés.
Recherche de la signature/empreinte digitale que vous avez mentionnée dans la page de résultats:
pub 4096R/D2C19886 2015-05-28
Fingerprint=BBEB DCB3 18AD 50EC 6865 0906 13B0 0F1F D2C1 9886
uid Spotify Public Repository Signing Key <[email protected]>
sig sig3 D2C19886 2015-05-29 __________ 2017-11-22 [selfsig]
sig sig 94558F59 2015-06-02 __________ __________ Spotify Public Repository Signing Key <[email protected]>
Nous voyons que c'est l'entrée qui nous intéresse.
Nous cliquons donc dans D2C19886 et une page avec la clé s'affiche à https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x13B00F1FD2C19886 .
Public Key Server -- Get "0x13b00f1fd2c19886 "
-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: SKS 1.1.6
Comment: Hostname: keyserver.ubuntu.com
mQINBFVm7dMBEADGcdfhx/pjGtiVhsyXH4r8TrFgsGyHEsOWaYeU2JL1tEi+YI1qjpExb2Te
TReDTiGEFFMWgPTS0y5HQGm+2P3XGv0pShvgg9A6FWZmZmT+tymA2zvNrdpmKdhScZ52StPL
Fz9wsmXHG4DIKVuzgzuV4YxJ1i2wFtoVp8zT9ORu1BxLZ0IBwTvLRbaQGZ8DwXVAHak9cK91
Ujj6gJ1MJPohZLHH2BjrOjEl/I36jFUjK0AadznNzo08lLAi94qjtheJtuJD3IEOAlCkaknz
6vbEFpszLGlLD7GENMzJk46ObuJuvW5R2PkOU2U8jS0GaUD9Ou/SIdJ6vIdvjSs/ettc2wwd
nbSdadvjovIfvEBRsEVMpRG+42B+DZpJbS9pCb8sxTJtnUy1YViZmG0++FhPGGPGzQYhC/Mz
07lsx5PkC7Kka2FCNmhauxw5deO43Ck181oQVdbt/VxmChzchUJ6N6/uOV5JKm7B9UnDNyqU
Yv6goeLvFnT9ag+FCxiroTrq+dINr6d+XT/cI9WtSagfmhcekwhyfcCgYsFemAOckRifjEGF
MksQlnWkGwWNoKe91KBxjgaJaazSbZRk0dFPSSmfKWaxuTwkR74pbaueyijnQJgHAjfCyzQe
9miN9DitON5l6T2gVAN3Jn1QQmV7tt5GB7amcHf5/b0oYmmRPQARAQABtD5TcG90aWZ5IFB1
YmxpYyBSZXBvc2l0b3J5IFNpZ25pbmcgS2V5IDxvcGVyYXRpb25zQHNwb3RpZnkuY29tPokB
HAQQAQIABgUCVW3SWAAKCRAILM7flFWPWUk5B/wOqqD9/2Do9PyPucfUs/rrP4+M8iJLpv8U
+bX/qHryTTWfpk3YuKL4+c8saHySK4HLGyxd3mdo1XMF351KrxLQvWMSSPbIRV9cSqZROOVn
2ya+3xpWk6t1omLzxtBBMOC4B5qAfWhog7ioAmzQNY5NUz5mqXVP5WbgR/G+GOszzuQUgeu1
Xxxzir3JqWQ0g8mp3EtX7dB76zxkkuTYbeVDPOvtJPn/38d3oSLUI1QJnL8pjREHeE8fO5mW
ncJmyZNhkYd+rfnPk+W0ZkTr59QBIEOGMTmATtNh+x1mo5e2dW91Oj4jEWipMUouLGqbo/gJ
uHFMt8RWBmy+zFYUEPYHiQI+BBMBAgAoAhsDBgsJCAcDAgYVCAIJCgsEFgIDAQIeAQIXgAUC
VWg3sAUJBK3QLQAKCRATsA8f0sGYhl6hEACJ1CrYjaflKKR2Znuh0g0gM89NAwO8AA4+SpkW
HagdGLo7OV/rGB3mlwD4mhaa8CbEnBT/za3jFnT19KsYQWiT21oOX/eo47ITbAspjDZTiXLi
nyAcOJn+q/EFkelROzbVaxZHi6SN5kCEd8KAew8h2jZf8wWqaYVyMPNSqotUhin6YjWsu57B
GixVThoMmxx3udsGAiYqt8buAANWbkUphrvtJuNCKkGym7psnS4Q5EnHPfvbYii9iAfBswX6
nZQlehva7aToN73elYL3opCArAxKAFx70bpGxb7T16KjKzkKS0a4iQ7xdbBGylb+AE/RhICa
+RM5tma2YnB3pZvFM/n0BNeYReCgvxkl1rqrB1KxmFHfGqjLkb2YAZ5RYnP3gEt+nbEWxL8F
O0Bhakn1RB3NqTC2oiQAUfh+66yUawUNkHRHlGAEzZAxvpfnf0hSJp734lyQZJs+zqXUAXa2
UmEZ6se62PgZRQIz5IbAVxSiGz4xIZs1yS36N2vZ34LFJa9o/HVk5OfpqZM0zjWwQIQN2b4O
BizL5r4h2Mi5BHUEyYMsDZn+txoJjPPYLolRlf31sqi5MJE+cbOAXSn8PC9k4i+hrbfqFzts
47+6xgCH3aXbhUkJh1CH/0/qEXfTPYTyayijm4rdvSBczzEORWGT5E38oV9h1eUqp4nVPg==
=/qip
-----END PGP PUBLIC KEY BLOCK-----
Vous coupez entre la ligne qui commence par "----- BEGIN" et la ligne se terminant par "----- END", y compris ces lignes, et collez dans un fichier, dites spotify.pgp
sur le serveur auquel vous souhaitez importer cette clé. (ne le coupez pas d'ici, car j'ai ajouté 4 espaces avant chaque ligne lors du formatage)
Enfin, pour importer la clé dans le serveur, vous devez:
$Sudo apt-key add spotify.pgp
OK
Voici une solution qui utilise http via curl au lieu d'essayer de proxy apt-key ou gpg:
curl -sSL \
'http://keyserver.ubuntu.com/pks/lookup?op=get&search=0xBBEBDCB318AD50EC6865090613B00F1FD2C19886' \
| Sudo apt-key add -
Cette méthode doit être utilisée à la place de apt-key
ligne de commande ou paramètres de variables d'environnement http_proxy ou https_proxy (qui sont désactivés dans les dernières versions de apt-key
).
vous pouvez spécifier le serveur de clés comme paramètre à add-apt-repository en:
Sudo add-apt-repository --keyserver hkps://keyserver.ubuntu.com:443 some_ppa
Le port sortant 443 ne serait pas bloqué par le pare-feu de l'entreprise.
Je viens d'ajouter http://
avant keyserver.ubuntu.com
et ça marche pour moi:
# apt-key adv --keyserver http://keyserver.ubuntu.com