apt-key add -? kullanarak eklediğim gpg anahtarını nasıl kaldırabilirim?

111

Sunucumun anahtarlığındaki tuşa artık ihtiyacım yok. Onu kaldırmak mümkün mü? Bu komutu kullanarak anahtarı ekledim:

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

Yardım için teşekkürler

    
sordu Raymond 24.02.2012 05:05

4 cevap

164

İlk önce eklediğiniz anahtarın anahtar kimliğini bulmanız gerekir. Bunu komutla yap:

sudo apt-key list

Sahip olduğunuz tüm anahtarları listeleyecek ve aşağıdaki gibi:

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

Kaldırılacak anahtarı bulduktan sonra, sudo apt-key del <keyid> komutunun anahtar anahtarlığınızdan kaldırmak istediğiniz anahtarın gerçek anahtar kimliğiyle değiştirildiği <keyid> komutunu kullanın.

$ sudo apt-key del B455BEF0
$ apt-key list | grep clicompan
$
    
verilen cevap Nitin Venkatesh 24.02.2012 05:59
64

16.10'da liste komutunu kullandığınızda kısa anahtar kimliği artık gösterilmiyor, ancak aslında uzun hex’in son 8 karakteri.

Örneğin, aşağıdaki anahtarın anahtar kimliği

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

Anahtar kimlik, EFE21092 olacaktır

    
verilen cevap Wesam 08.11.2016 02:37
3

İşleri kolaylaştırmak ve kimlik yerine bir dize kullanmak için kısa bir komut dosyası hazırladım.

Anahtarda bildiğiniz benzersiz bir dizgi varsa, komut dizimi kullanabilirsiniz.
örn webmin için durumumda

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

Eminim sistemimde yalnızca webmin anahtarının jcameron 'i, bu anahtarı kullanarak, bu anahtar sözcüğünü kullanıyorum.

Onu ~/removeAptKey

olarak kaydettim

ve

olarak çalıştırın
sudo ./removeAptKey jcameron

Ouput gibi bir şey olmalı

KEYID: 11F63C51
OK

İşte komutum:

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

İlk önce anahtarımın bloğunun üst iki satırını aldım:

  • sudo apt-key list : apt anahtarlarını her zamanki gibi listeler
  • grep '${UNIQUE}' -B 1 : sadece jcameron ve -B 1 satırını içeren benzersiz anahtar dizesini içeren satırı al
  • > result.temp : Dosyaya kaydedin (daha sonra kaldırılır)

Eğer bu tam olarak 2 satır döndürürse (- & gt; tam olarak 1 anahtar aldım): Devam ediyorum:

  • grep 'pub' : Şimdi sadece pup anahtar kimliğine sahip satırı al
  • cut -d " " -f 4 : bu satırın 4. kelimesini alırsınız (birincisi, sonradan girdiğimiz diziden iki boşluktan pub 'dir).
  • cut -d "/" -f 2 : / 'den sonraki bölümü sadece al

Son olarak bu anahtarı ve temizlemeyi sil

  • apt-key del ${KEYID} (benim durumum 11F63C51 )
  • rm result.temp : artık bu dosyaya gerek yok
verilen cevap derHugo 06.12.2017 19:15
0

Geç kalacağımı biliyorum, ancak bunu başarmak için sadece bu tek satırlı komutu paylaşmak istedim.

NOT : Bu, yalnızca çıktı benzersiz bir anahtarsa ​​çalışır.

16.04'e kadar Ubuntu sürümleri:

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

FOOBAR UID adıdır.

16.10’dan Ubuntu sürümleri:

apt-key del $(apt-key list | awk 'NR==''expr $(apt-key list | grep --line-number --regexp "FOOBAR" | cut --fields 1 --delimiter ":") - 1''{print;exit}')

FOOBAR UID adıdır.

    
verilen cevap Davdriver 07.06.2018 03:33

Etiketlerdeki diğer soruları oku