Vraag Hoe kan ik de gpg-sleutel verwijderen die ik heb toegevoegd met apt-key add -?


Ik heb de sleutel in de sleutelhanger van mijn server niet meer nodig. Is het mogelijk om het te verwijderen? Ik heb de sleutel toegevoegd met behulp van deze opdracht:

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

Bedankt voor het helpen


111
2018-02-24 04:05


oorsprong




antwoorden:


Eerst moet je de sleutel-ID vinden van de sleutel die je hebt toegevoegd. Doe dit door het commando:

sudo apt-key list

Het zal een lijst maken met alle sleutels die je hebt, met elke vermelding er als volgt uitziet:

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

Als u eenmaal weet welke sleutel u moet verwijderen, gebruikt u de opdracht sudo apt-key del <keyid> waar <keyid> wordt vervangen door de daadwerkelijke sleutel van de sleutel die u uit uw sleutelbos wilt verwijderen.

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

164
2018-02-24 04:59



@Raymond Geen probleem :) - Nitin Venkatesh
Ah ik zie dat de unieke id op de regel met het label pub staat, niet de regel met de naam uid. - ctrl-alt-delor
op ubuntu 16.10 resultaten lijkt een beetje anders: pub rsa4096 2012-05-11 [SC] 8439 .... uid .... - mxdsp


Om 16.10 wordt de ID van de korte toets niet meer getoond wanneer u de lijst gebruikt, maar het zijn eigenlijk de laatste 8 tekens van de lange hex.

Dus bijvoorbeeld de sleutel-ID voor de volgende sleutel

/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>

De belangrijkste ID is EFE21092


65
2017-11-08 01:37



Heel behulpzaam, dank je. Dit is uiterst nutteloze UX. - SColvin
@SColvin kunt u gewoon doen sudo apt-key del "8439 38DF 228D 22F7 B374 2BC0 D94A A3F0 EFE2 1092" en ik denk dat het veiliger is om de hele vingerafdruk te gebruiken, de keyid kan duplicaten hebben (tenminste als je PGP voor e-mails gebruikt, lees ik dat je je hele vingerafdruk moet delen en niet alleen de keyid). - baptx
Zeer nuttig, erg waar ook voor 17.10! - Hartmut


Ik heb een kort script gemaakt om dingen eenvoudiger te maken en een string te gebruiken in plaats van de ID.

U kunt mijn script gebruiken als de sleutel een unieke reeks bevat die u kent.
bijv. in mijn geval voor webmin

pub   1024D/11F63C51 2002-02-28
uid                  Jamie Cameron <jcameron@webmin.com>
sub   1024g/1B24BE83 2002-02-28

Ik weet zeker dat alleen de webmin-sleutel op mijn systeem werkt jcameron dan gebruik ik dit script om de overeenstemmende sleutel te verwijderen.

Ik redde het als ~/removeAptKey

en voer het uit als

sudo ./removeAptKey jcameron

De kop moet zoiets zijn

KEYID: 11F63C51
OK

Hier is mijn script:

#!/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

Eerst krijg ik de bovenste twee regels van het blok van mijn sleutel:

  • sudo apt-key list: geeft de gebruikelijke toetsen weer zoals gebruikelijk
  • grep '${UNIQUE}' -B 1: neem alleen de regel met de unieke sleutelstring jcameron en -B 1 de regel ervoor
  • > result.temp: Sla het op in een bestand (dat later wordt verwijderd)

Als dit precies 2 regels retourneert (-> heeft exact 1 sleutel) ga ik verder:

  • grep 'pub': Neem nu alleen de regel met de pup sleutel id
  • cut -d " " -f 4: neem het vierde woord van die regel (de eerste is pub dan komen er twee spaties, dan de snaar waar we achter staan ​​``)
  • cut -d "/" -f 2: neem alleen het gedeelte erna / 

En ten slotte verwijder deze sleutel en opschoning

  • apt-key del ${KEYID} (in mijn geval 11F63C51)
  • rm result.temp: dit bestand is niet meer nodig

3
2017-12-06 18:15





Ik weet dat ik te laat zou zijn, maar ik wilde alleen dit eenregelige commando delen om dit te bereiken.

NOTITIE: Dit werkt alleen als de uitvoer een unieke sleutel is.


Ubuntu-versies tot 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 "/")

waar FOOBAR is de UID-naam.


Ubuntu-versies vanaf 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}')

waar FOOBAR is de UID-naam.


0
2018-06-07 01:33