Récupérer les clefs GPG des dépôts sur Ubuntu quand on est derrière un pare-feu
Voici le tableau : vous êtes dans votre chambre de cité U, ou peut-être au bureau, et vous tombez sur un joli PPA que vous désirez ajouter illico aux sources de votre Ubuntu. Pas de problème, vous dites-vous in petto : on ouvre un terminal et
$ sudo add-apt-repository ppa:freetuxtv/freetuxtv
Et là, PAF ! Ça ne marche pas, la connexion au serveur de clefs timeout lamentablement. En cause, le pare-feu de votre université ou entreprise qui, faisant son boulot, bloque systématiquement les connexions initiées vers des ports inconnus comme le port 11371, généralement utilisé par les serveurs de clefs.
Heureusement, Anthony, un étudiant de Durham, a trouvé une petite astuce qui va nous permettre de faire passer les requêtes de clefs GPG par le port 80 qui, contrairement au 11371, a très peu de chances d'être bloqué par le pare-feu derrière lequel vous vous connectez. Il a remarqué que la commande add-apt-repository est écrite en python, ce qui la rend très facilement éditable. En suivant la structure des importations, il a trouvé le fichier responsable de la récupération des clefs GPG des dépôts. Voici donc la marche à suivre :
– Éditez le fichier ppa.py qui se trouve dans le répertoire /usr/lib/python2.6/dist-packages/softwareproperties/ en faisant par exemple Alt+F2 puis en entrant
gksudo gedit /usr/lib/python2.6/dist-packages/softwareproperties/ppa.py
sans oublier de valider, et de taper votre mot de passe à l'invite.
– Ceci fait, trouvez dans le fichier la ligne n°88 et changez « keyserver.ubuntu.com » en « hkp://keyserver.ubuntu.com:80 ». Cela donne
res = subprocess.call( ["apt-key", "adv", "--keyserver", "keyserver.ubuntu.com", "--recv", signing_key_fingerprint[0]])
qui devient
res = subprocess.call( ["apt-key", "adv", "--keyserver", "hkp://keyserver.ubuntu.com:80", "--recv", signing_key_fingerprint[0]])
Enregistrez, et voilà ! La commande add-apt-repository utilisera désormais le port 80 pour récupérer les clefs des dépôts, et vous pourrez ajouter de nouveaux PPA en toute sérénité.