Je n'ai plus besoin de la clé dans le trousseau de mon serveur. Est-il possible de la supprimer ? J'ai ajouté la clé en utilisant cette commande :
curl http://repo.varnish-cache.org/debian/GPG-key.txt | apt-key add -
Merci de votre aide
Je n'ai plus besoin de la clé dans le trousseau de mon serveur. Est-il possible de la supprimer ? J'ai ajouté la clé en utilisant cette commande :
curl http://repo.varnish-cache.org/debian/GPG-key.txt | apt-key add -
Merci de votre aide
Sous la version 16.10, l'identifiant de la clé courte n'est plus affiché lorsque vous utilisez la commande list, mais il s'agit en fait des 8 derniers caractères de l'hexagone long.
Ainsi, par exemple, l'identifiant de la clé suivante
/etc/apt/trusted.gpg.d/ubuntu-keyring-2012-cdimage.gpg
------------------------------------------------------
pub rsa4096 2012-05-11 [SC]
8439 38DF 228D 22F7 B374 2BC0 D94A A3F0 EFE2 1092
uid [ unknown] Ubuntu CD Image Automatic Signing Key (2012) <cdimage@ubuntu.com>
L'identifiant de la clé sera EFE21092
Vous devez d'abord trouver l'identifiant de la clé que vous avez ajoutée. Faites-le par la commande :
sudo apt-key list
Il répertorie toutes les clés que vous possédez, chaque entrée ressemblant à ceci :
pub 1024R/B455BEF0 2010-07-29
uid Launchpad clicompanion-nightlies
Une fois que vous avez déterminé la clé à supprimer, utilisez la commande sudo apt-key del <keyid>
donde <keyid>
est remplacé par le keyid réel de la clé que vous voulez retirer de votre trousseau.
$ sudo apt-key del B455BEF0
$ apt-key list | grep clicompan
$
Mise à jour pour Ubuntu 20.04
après l'exécution
sudo apt-key list
vous devriez obtenir la liste des clés apt :
/etc/apt/trusted.gpg
--------------------
pub rsa4096 2016-04-12 [SC]
EB4C 1BFD 4F04 2F6D DDCC EC91 7721 F63B D38B 4796
uid [ unknown] Google Inc. (Linux Packages Signing Authority) <linux-packages-keymaster@google.com>
sub rsa4096 2019-07-22 [S] [expires: 2022-07-21]
pub rsa4096 2017-04-11 [SC] [expired: 2019-09-28]
D4CC 8597 4C31 396B 18B3 6837 D615 560B A5C7 FF72
uid [ expired] Opera Software Archive Automatic Signing Key 2017 <packager@opera.com>
pub rsa4096 2019-09-12 [SC] [expires: 2021-09-11]
68E9 B2B0 3661 EE3C 44F7 0750 4B8E C3BA ABDC 4346
uid [ unknown] Opera Software Archive Automatic Signing Key 2019 <packager@opera.com>
sub rsa4096 2019-09-12 [E] [expires: 2021-09-11]
pub rsa4096 2017-03-13 [SC]
8CAE 012E BFAC 38B1 7A93 7CD8 C5E2 2450 0C12 89C0
uid [ unknown] TeamViewer GmbH (TeamViewer Linux 2017) <support@teamviewer.com>
sub rsa4096 2017-03-13 [E]
sous uid
vous avez le nom de l'application, par exemple :
[ unknown] Opera Software Archive Automatic Signing Key 2019 <packager@opera.com>
et la clé que vous voulez supprimer se trouve au-dessus :
D4CC 8597 4C31 396B 18B3 6837 D615 560B A5C7 FF72 <-- THAT'S THE KEY
uid [ expired] Opera Software Archive Automatic Signing Key 2017 <packager@opera.com>
et vous l'enlevez en mettant cette clé entre guillemets doubles ou simples comme ceci :
sudo apt-key del "D4CC 8597 4C31 396B 18B3 6837 D615 560B A5C7 FF72"
J'ai fait un court script pour faciliter les choses et utiliser une chaîne de caractères au lieu de l'id.
Vous pouvez utiliser mon script si la clé contient une chaîne unique que vous connaissez.
par exemple, dans mon cas pour webmin
pub 1024D/11F63C51 2002-02-28
uid Jamie Cameron <jcameron@webmin.com>
sub 1024g/1B24BE83 2002-02-28
Je suis sûr que seule la clé webmin sur mon système a jcameron
puis j'utilise ce script pour supprimer la clé correspondante.
Je l'ai enregistré comme ~/removeAptKey
et l'exécuter en tant que
sudo ./removeAptKey jcameron
La sortie devrait être quelque chose comme
KEYID: 11F63C51
OK
Voici mon script :
#!/bin/bash
function printKeys(){
echo "Installed keys are"
echo ""
sudo apt-key list
}
if [[ $EUID -ne 0 ]]; then
echo "This script must be run as root" 1>&2
exit 1
fi
if [[ $# -eq 0 ]]
then
echo "No key name provided"
exit 1
fi
UNIQUE=$1
sudo apt-key list | grep "${UNIQUE}" -B 1 > result.temp
LENGTH=$(cat result.temp | wc -l)
if [[ ${LENGTH} -gt 2 ]]
then
echo "Attention you found more than 1 key. Use a more specific string."
printKeys
exit 2
fi
if [[ ${LENGTH} != 2 ]]
then
echo "Key not found. Doing nothing."
printKeys
exit 3
fi
KEYID=$(cat result.temp | grep 'pub' | cut -d " " -f 4 | cut -d "/" -f 2)
echo "KEYID: "$KEYID
apt-key del ${KEYID}
rm result.temp
D'abord, je récupère les deux lignes supérieures du bloc de ma clé :
sudo apt-key list
: liste les clés apt comme d'habitudegrep '${UNIQUE}' -B 1
: prendre uniquement la ligne contenant la chaîne de la clé unique jcameron
y -B 1
la ligne avant> result.temp
: L'enregistrer dans un fichier (qui sera supprimé par la suite)Si cela renvoie exactement 2 lignes (-> a obtenu exactement 1 clé), je passe à autre chose :
grep 'pub'
: Maintenant, prenez seulement la ligne avec le pup
id clécut -d " " -f 4
: prendre le 4ème mot de cette ligne (le premier est pub
que viennent deux espaces, que la chaîne que nous cherchons ``)cut -d "/" -f 2
: prendre seulement la partie après /
Et enfin supprimer cette clé et nettoyer
apt-key del ${KEYID}
(dans mon cas 11F63C51
)rm result.temp
: je n'ai plus besoin de ce fichierJe sais que je suis peut-être en retard, mais je voulais juste partager cette commande en une ligne pour y parvenir.
NOTE : Cela ne fonctionnera que si la sortie est une clé unique.
Versions d'Ubuntu jusqu'à 16.04 (MISE À JOUR 2018-12-22) :
apt-key del $(apt-key list | awk 'NR=='$(apt-key list | grep --line-number --regexp "FOOBAR" | cut --fields 1 --delimiter ":")'{print;exit}' | awk '{print $2}' | cut --fields 2 --delimiter "/")
où FOOBAR
est le nom de l'UID.
Versions d'Ubuntu à partir de 16.10 :
apt-key del $(apt-key list | awk 'NR=='`expr $(apt-key list | grep --line-number --regexp "FOOBAR" | cut --fields 1 --delimiter ":") - 1`'{print;exit}')
où FOOBAR
est le nom de l'UID.
SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.