Как удалить gpg-ключ, который я добавил с помощью apt-key add -?

В разделе об устранении неполадок есть раздел о том, что в разделе «Устранение неполадок» (http://wiki.rabbitvcs.org/wiki/support/faq) я установил RabbitVCS, но я не вижу никаких элементов контекстного меню или эмблемы !. Это приводит к странице поддержки здесь.

115
задан 11 March 2012 в 23:20

3 ответа

Сначала вам нужно найти ключевой идентификатор добавляемого ключа. Сделайте это по команде:

sudo apt-key list

В ней будут перечислены все ключи, которые у вас есть, причем каждая запись выглядит так:

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

Как только вы выяснили, какая клавиша для удаления, используйте команду sudo apt-key del <keyid>, где <keyid> заменен фактическим ключом ключа, который вы хотите удалить из вашей брелка.

$ sudo apt-key del B455BEF0
$ apt-key list | grep clicompan
$
151
ответ дан 25 May 2018 в 13:59
  • 1
    @Raymond Нет проблем :) – Nitin Venkatesh 25 February 2012 в 02:15
  • 2
    Ах, я вижу, что уникальный идентификатор находится в строке с надписью pub, а не в строке, обозначенной uid. – ctrl-alt-delor 21 June 2016 в 10:59
  • 3
    на ubuntu 16.10 результаты кажутся немного разными: pub rsa4096 2012-05-11 [SC] 8439 .... uid .... – mxdsp 6 November 2016 в 20:17

В 16.10 идентификатор короткого ключа больше не отображается при использовании команды списка, но на самом деле это последние 8 символов длинного шестнадцатеричного значения.

Так, например, идентификатор ключа для следующего ключа

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

Идентификатор ключа будет EFE21092

50
ответ дан 25 May 2018 в 13:59
  • 1
    Очень полезно, спасибо. Это чрезвычайно бесполезный UX. – SColvin 18 May 2017 в 14:27
  • 2
    @SColvin, вы можете просто сделать sudo apt-key del "8439 38DF 228D 22F7 B374 2BC0 D94A A3F0 EFE2 1092", и я думаю, что безопаснее использовать весь отпечаток пальца, ключ может иметь дубликаты (по крайней мере, когда вы используете PGP для электронных писем, я читаю, что вы должны делиться всем своим отпечатком пальца, а не только с keyid) , – baptx 2 December 2017 в 16:14
  • 3
    Очень полезно, очень верно и для 17.10! – Hartmut 14 April 2018 в 00:15

Я сделал короткий скрипт, чтобы упростить задачу и использовать строку вместо id.

Вы можете использовать мой скрипт, если ключ содержит уникальную строку, которую вы знаете. например в моем случае для webmin

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

Я уверен, что только ключ webmin в моей системе имеет jcameron, чем я использую этот скрипт для удаления соответствующего ключа.

Я сохранил это ~/removeAptKey

и запустить его как

sudo ./removeAptKey jcameron

. Выход должен быть чем-то вроде

KEYID: 11F63C51
OK

Вот мой скрипт: [!d7 ]

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

Сначала я получаю две верхние строки блока моего ключа:

sudo apt-key list: перечисляет apt-ключи как обычно grep '${UNIQUE}' -B 1: возьмите только строку, содержащую уникальную ключевую строку [ f9] и -B 1 строка перед > result.temp: сохраните ее в файле (который позже будет удален)

Если это возвращает ровно 2 строки (-> получил ровно 1 ключ), я перехожу к: [ ! d13] sudo apt-key list: перечисляет ключи apt как обычно cut -d " " -f 4: возьмите четвертое слово этой строки (первое - pub, чем два пробела, чем строка, которую мы после ``) grep '${UNIQUE}' -B 1: возьмите только строку, содержащую уникальную ключевую строку jcameron и -B 1, перед линией

И, наконец, удалите этот ключ и очистите [ ! d18] cut -d " " -f 4: возьмите четвертое слово этой строки (первая - pub, чем введите два пробела, чем строка после ``) rm result.temp: больше не нужен этот файл

2
ответ дан 25 May 2018 в 13:59

Другие вопросы по тегам:

Похожие вопросы: