¿Cómo puedo eliminar la clave gpg que agregué usando apt-key add -?

111

Ya no necesito la llave en el llavero de mi servidor. ¿Es posible eliminarlo? Agregué la clave usando este comando:

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

Gracias por ayudarnos

    
pregunta Raymond 24.02.2012 - 05:05

4 respuestas

164

Primero debe encontrar la identificación de la clave que agregó. Hazlo por el comando:

sudo apt-key list

Mostrará todas las claves que tiene, con cada entrada que se vea así:

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

Una vez que haya descubierto qué clave eliminar, use el comando sudo apt-key del <keyid> donde <keyid> se reemplaza con el keyid real de la clave que desea eliminar de su llavero.

$ sudo apt-key del B455BEF0
$ apt-key list | grep clicompan
$
    
respondido por el Nitin Venkatesh 24.02.2012 - 05:59
64

En 16.10, la identificación de la clave abreviada ya no se muestra cuando usas el comando de lista, pero en realidad son los últimos 8 caracteres del hexágono largo.

Así que, por ejemplo, la identificación de la clave siguiente

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

La identificación de la clave será EFE21092

    
respondido por el Wesam 08.11.2016 - 02:37
3

Hice una secuencia de comandos corta para facilitar las cosas y usar una cadena en lugar de la identificación.

Puedes usar mi script si la clave contiene una cadena única que conoces.
p. en mi caso para webmin

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

Estoy seguro de que solo la clave webmin en mi sistema tiene jcameron de lo que uso esta secuencia de comandos para eliminar la clave correspondiente.

Lo guardé como ~/removeAptKey

y ejecutarlo como

sudo ./removeAptKey jcameron

La salida debería ser algo así como

KEYID: 11F63C51
OK

Aquí está mi 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=

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

Primero obtengo las dos líneas superiores del bloque de mi clave:

  • sudo apt-key list : enumera las teclas apt como de costumbre
  • grep '${UNIQUE}' -B 1 : toma solo la línea que contiene la cadena de clave única jcameron y -B 1 la línea antes de
  • > result.temp : guárdelo en un archivo (que luego se eliminará)

Si esto devuelve exactamente 2 líneas (- & gt; obtuve exactamente 1 clave) sigo adelante:

  • grep 'pub' : ahora toma solo la línea con la identificación de la clave pup
  • cut -d " " -f 4 : toma la cuarta palabra de esa línea (la primera es pub que vienen dos espacios, que la cadena que estamos buscando '')
  • cut -d "/" -f 2 : toma solo la parte después de /

Y finalmente elimine esta clave y limpieza

  • apt-key del ${KEYID} (en mi caso 11F63C51 )
  • rm result.temp : ya no necesita este archivo
respondido por el derHugo 06.12.2017 - 19:15
0

Sé que podría llegar tarde, pero solo quería compartir este comando de una línea para lograr esto.

NOTA : esto solo funcionará si el resultado es una clave única.

Versiones de Ubuntu hasta 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 "/")

donde FOOBAR es el nombre de UID.

Versiones de Ubuntu desde 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}')

donde FOOBAR es el nombre de UID.

    
respondido por el Davdriver 07.06.2018 - 03:33

Lea otras preguntas en las etiquetas