Hogyan távolíthatom el a gpg kulcsot, amelyet hozzáadtam az apt-kulcs kiegészítéssel?

112

Már nem kell a kulcsom a szerverem kulcstartójába. Lehetőség van eltávolítani? A kulcsot a következő paranccsal adtam hozzá:

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

Köszönjük a segítségedet

    
készlet Raymond 24.02.2012 05:05
forrás

4 válasz

165

Először meg kell találnia a hozzáadott kulcs kulcsazonosítóját. Ehhez a parancsot:

sudo apt-key list

A felsorolt ​​összes kulcsot felsorolja, minden bejegyzés így néz ki:

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

Miután kitaláltuk, hogy melyik kulcsot kell eltávolítani, használd asudo apt-key del <keyid> parancsot, ahol a<keyid> helyett a kulcstartóból eltávolítani kívánt kulcshoz tartozó tényleges keyid.

$ sudo apt-key del B455BEF0
$ apt-key list | grep clicompan
$
    
válasz adott Nitin Venkatesh 24.02.2012 05:59
forrás
66

16.10-kor a rövid kulcsazonosító már nem jelenik meg a lista parancs használatakor, de valójában a hosszú hexa utolsó 8 karaktere.

Így például a következő kulcs kulcsazonosítója

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

A kulcsazonosító lesz az EFE21092

    
válasz adott Wesam 08.11.2016 02:37
forrás
3

Készítettem egy rövid parancsfájlt, hogy könnyebbé tegyem a dolgokat, és használjam a karakterláncot az id helyett.

A szkriptet használhatja, ha a kulcs egy egyedi karakterláncot tartalmaz. katalógusa például az én esetemben webmin

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

Biztos vagyok benne, hogy a rendszeremen csak a webmin kulcs szerepeljcameron -ban, mint a szkript használatával, hogy eltávolítsam az adott kulcsot.

Mentettem, mint~/removeAptKey

és futtasd

sudo ./removeAptKey jcameron

A kimenetnek valami hasonlónak kell lennie

KEYID: 11F63C51
OK

Itt van a szkript:

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

Először a kulcs két blokkjának felső sorát kapom:

  • sudo apt-key list: az apt kulcsokat a szokásos módon felsorolja
  • grep '${UNIQUE}' -B 1: csak ajcameron és a-B 1 karakterláncot tartalmazó sort adja meg, mielőtt
  • > result.temp: mentse el egy fájlt (amely később eltávolításra kerül)

Ha ez pontosan 2 sorral tér vissza (- > pontosan 1 kulcsot kapott), akkor továbblépek:

  • grep 'pub': Most csak apup kulcsazonosítóval
  • kövesse a sort
  • cut -d " " -f 4: vegye a sor 4. sorát (az elsőpub, mint két szóköz, mint a '' '
  • cut -d "/" -f 2: csak a/
  • után kell részt venni

És végül törölje ezt a kulcsot és törölje

  • apt-key del ${KEYID} (az én esetemben11F63C51)
  • rm result.temp: nem szükséges többé ez a fájl
válasz adott derHugo 06.12.2017 19:15
forrás
0

Tudom, hogy késő lesz, de csak ezt akarom megosztani ezzel az egysoros parancssal.

MEGJEGYZÉS : Ez csak akkor működik, ha a kimenet egyedi kulcs.

Ubuntu verziók 16.04-ig:

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

ahol aFOOBAR a UID név.

Ubuntu verziók 16.10-től:

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

ahol aFOOBAR a UID név.

    
válasz adott Davdriver 07.06.2018 03:33
forrás