Eu fiz um pequeno script para facilitar as coisas e usar uma string em vez do id.
Você pode usar meu script se a chave contiver uma string exclusiva que você conhece. Por exemplo, no meu caso para o webmin
pub 1024D/11F63C51 2002-02-28
uid Jamie Cameron <[email protected]>
sub 1024g/1B24BE83 2002-02-28
Tenho certeza de que somente a chave webmin no meu sistema tem jcameron
do que eu usei este script para remover a chave de acordo.
Eu salvei como ~/removeAptKey
e execute-o como
sudo ./removeAptKey jcameron
A saída deve ser algo como
KEYID: 11F63C51
OK
Aqui está meu 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
Primeiro, obtenho as duas linhas superiores do bloco da minha chave:
-
sudo apt-key list
: lista as chaves apt como de costume
-
grep '${UNIQUE}' -B 1
: use apenas a linha que contém a string de chave exclusiva jcameron
e -B 1
da linha anterior
-
> result.temp
: Salve em um arquivo (que é removido mais tarde)
Se isso retornar exatamente 2 linhas (- > tem exatamente 1 tecla) eu prossigo:
-
grep 'pub'
: agora pegue apenas a linha com o ID da chave pup
-
cut -d " " -f 4
: pegue a quarta palavra dessa linha (a primeira é pub
do que vem dois espaços, do que a sequência que estamos depois de '')
-
cut -d "/" -f 2
: pegue somente a parte depois de /
E, finalmente, exclua essa chave e a limpeza
-
apt-key del ${KEYID}
(no meu caso 11F63C51
)
-
rm result.temp
: não precisa mais deste arquivo