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


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ürs Helfen


111
2018-02-24 04:05


Ursprung




Antworten:


Zuerst müssen Sie die Schlüssel-ID des von Ihnen hinzugefügten Schlüssels finden. Mach das mit dem Befehl:

sudo apt-key list

Es listet alle Schlüssel auf, 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> woher <keyid> wird durch die tatsächliche Schlüsselkennung des Schlüssels ersetzt, den Sie aus Ihrem Schlüsselbund entfernen möchten.

$ sudo apt-key del B455BEF0
$ apt-key list | grep clicompan
$

164
2018-02-24 04:59



@ Raymond Kein Problem :) - Nitin Venkatesh
Ah ich sehe die eindeutige ID ist auf der Leitung mit der Aufschrift Pub, nicht die Zeile mit der Bezeichnung UID. - ctrl-alt-delor
auf Ubuntu 16.10 Ergebnisse scheint ein wenig anders: pub rsa4096 2012-05-11 [SC] 8439 .... uid .... - mxdsp


Am 16.10 wird die kurze Schlüssel-ID nicht mehr angezeigt, wenn Sie den Befehl list 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) <cdimage@ubuntu.com>

Die Schlüssel-ID lautet EFE21092


65
2017-11-08 01:37



Sehr hilfreich, danke. Dies ist extrem hilfreich UX. - SColvin
@SColvin kannst du einfach machen sudo apt-key del "8439 38DF 228D 22F7 B374 2BC0 D94A A3F0 EFE2 1092" und ich denke, es ist sicherer, den ganzen Fingerabdruck zu verwenden, der keyid könnte Duplikate haben (zumindest wenn du PGP für E-Mails verwendest, lese ich, dass du deinen gesamten Fingerabdruck teilen solltest und nicht nur den keyid). - baptx
Sehr hilfreich, sehr zutreffend auch für 17.10! - Hartmut


Ich habe ein kurzes Skript erstellt, um die Dinge einfacher zu machen 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 <jcameron@webmin.com>
sub   1024g/1B24BE83 2002-02-28

Ich bin mir sicher, dass nur der webmin Schlüssel auf meinem System hat jcameron Dann benutze ich dieses Skript, um den entsprechenden Schlüssel zu entfernen.

Ich habe es als gerettet ~/removeAptKey

und führe es als

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=$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."
    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: Nimm nur die Zeile mit der eindeutigen Schlüsselzeichenfolge jcameron und -B 1 die Linie vorher
  • > result.temp: Speichern Sie es in einer Datei (die später entfernt wird)

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

  • grep 'pub': Nimm jetzt nur die Linie mit dem pup Schlüssel-ID
  • cut -d " " -f 4: nimm das vierte Wort dieser Zeile (das erste ist pub als kommen zwei Leerzeichen, als die Zeichenfolge, die wir nach ``)
  • cut -d "/" -f 2: nimm nur den Teil danach / 

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

3
2017-12-06 18:15





Ich weiß, ich könnte zu spät kommen, aber ich wollte nur diesen einzeiligen Befehl 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 $2}' | cut --fields 2 --delimiter "/")

woher FOOBAR ist der UID-Name.


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}')

woher FOOBAR ist der UID-Name.


0
2018-06-07 01:33