Wie kann ich den GPG-Schlüssel entfernen, den ich mit apt-key add -?

105

Ich brauche den Schlüssel im Schlüsselring meines Servers nicht mehr. Ist es möglich, es zu entfernen? Ich habe den Schlüssel mit diesem Befehl hinzugefügt:

 curl http://repo.varnish-cache.org/debian/GPG-key.txt | apt-key add -

Danke für Ihre Hilfe

    
Raymond 24.02.2012, 05:05

4 Antworten

160

Zuerst müssen Sie die Schlüssel-ID des hinzugefügten Schlüssels finden. Tun Sie dies mit dem Befehl:

sudo apt-key list

Es werden alle Schlüssel aufgelistet, die Sie haben, wobei jeder Eintrag wie folgt aussieht:

pub   1024R/B455BEF0 2010-07-29
uid                  Launchpad clicompanion-nightlies

Sobald Sie herausgefunden haben, welcher Schlüssel entfernt werden soll, verwenden Sie den Befehl sudo apt-key del <keyid> , wobei <keyid> durch die tatsächliche keyid des Schlüssels ersetzt wird, den Sie aus Ihrem Schlüsselbund entfernen möchten.

$ sudo apt-key del B455BEF0
$ apt-key list | grep clicompan
$
    
Nitin Venkatesh 24.02.2012, 05:59
61

Am 16.10 wird die kurze Schlüssel-ID nicht mehr angezeigt, wenn Sie den list-Befehl verwenden, aber es sind eigentlich die letzten 8 Zeichen des langen Hex.

Also zum Beispiel die Schlüssel-ID für den folgenden Schlüssel

/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) <[email protected]>

Die Schlüssel-ID lautet EFE21092

    
Wesam 08.11.2016 02:37
3

Ich habe ein kurzes Skript erstellt, um die Dinge zu vereinfachen und statt der ID eine Zeichenfolge zu verwenden.

Sie können mein Skript verwenden, wenn der Schlüssel eine eindeutige Zeichenfolge enthält, die Sie kennen.
z.B. in meinem Fall für Webmin

pub   1024D/11F63C51 2002-02-28
uid                  Jamie Cameron <[email protected]>
sub   1024g/1B24BE83 2002-02-28

Ich bin sicher, dass nur der Webmin-Schlüssel auf meinem System jcameron hat, als ich dieses Skript verwende, um den entsprechenden Schlüssel zu entfernen.

Ich habe es als ~/removeAptKey

gespeichert

und führen Sie es als

aus
sudo ./removeAptKey jcameron

Die Ausgabe sollte etwas wie

sein
KEYID: 11F63C51
OK

Hier ist mein Skript:

#!/bin/bash


if [[ $EUID -ne 0 ]]; then
   echo "This script must be run as root" 1>&2
   exit 1
fi

if [[ $# == 0 ]]
then
    echo "No key name provided"
    exit 1
fi

UNIQUE=

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."
    exit 2
fi

if [[ ${LENGTH} != 2 ]]
then
    echo "Key not found. Doing nothing."
    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

Zuerst erhalte ich die oberen zwei Zeilen meines Schlüsselblocks:

  • sudo apt-key list : listet die apt-Schlüssel wie üblich
  • auf
  • grep '${UNIQUE}' -B 1 : Nehme nur die Zeile mit dem eindeutigen Schlüssel-String jcameron und -B 1 die Zeile vor
  • > result.temp : Speichern Sie es in einer Datei (die später entfernt wird)

Wenn das genau 2 Zeilen zurückgibt (- & gt; genau 1 Schlüssel bekommen), gehe ich weiter:

  • grep 'pub' : Nimm jetzt nur die Zeile mit der pup key id
  • cut -d " " -f 4 : Nimm das vierte Wort dieser Zeile (das erste ist pub , dann kommen zwei Leerzeichen, als die Zeichenfolge nach '')
  • cut -d "/" -f 2 : Nimm nur den Teil nach /

Und schließlich löschen Sie diesen Schlüssel und Bereinigung

  • apt-key del ${KEYID} (in meinem Fall 11F63C51 )
  • rm result.temp : brauche diese Datei nicht mehr
derHugo 06.12.2017 19:15
0

Ich weiß, ich könnte zu spät kommen, wollte aber diesen einzeiligen Befehl nur teilen, um dies zu erreichen.

HINWEIS : Dies funktioniert nur, wenn die Ausgabe ein eindeutiger Schlüssel ist.

Ubuntu-Versionen bis 16.04:

apt-key del $(apt-key list | awk 'NR==''expr $(apt-key list | grep --line-number --regexp "FOOBAR" | cut --fields 1 --delimiter ":") - 1''{print;exit}' | awk '{print }' | cut --fields 2 --delimiter "/")

wobei FOOBAR der UID-Name ist.

Ubuntu-Versionen von 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}')

wobei FOOBAR der UID-Name ist.

    
Davdriver 07.06.2018 03:33

Tags und Links