Parmak izi olmadan gpg gizli anahtarları zorla nasıl silebilirim?


11

Kaza, GPG anahtar halkasında bir gizli anahtarlar (ortak anahtar olmadan) oluşturdu ve bu anahtarları silmek için bir komut dosyası yazdım, ancak GPG bunu yapmama izin vermiyor:

$ gpg --batch --yes --delete-secret-keys KEYS
gpg: can't do this in batch mod
gpg: (unless you specify the key by fingerprint)

Peki ne yaptığımı biliyorum ve yinelenen anahtar kimlikleri olabileceğini biliyorum, ancak aşağıdakileri de işe yaramasa da bunları silmeye zorlamanın bir yolu yok:

$ yes | gpg --delete-secret-keys KEYS

Herhangi bir fikir?

Yanıtlar:


6

gpg --list-secret-keys --with-colons --fingerprintKolayca ayrıştırılabilir bir formatta parmak izi listesi oluşturmak için kullanın . Silmek istediğiniz tuşlara karşılık gelen form satırlarını alın ve parmak izlerini (the ) öğesine iletin .fpr:::::::::xxxx:xxxxgpg --batch --delete-secret-keys

Aşağıdaki komut tüm gizli tuş parmak izlerini oluşturur. Yalnızca silmek istediklerinizi seçtiğinizden emin olun!

gpg --list-secret-keys --with-colons --fingerprint | sed -n 's/^fpr:::::::::\([[:alnum:]]\+\):/\1/p'

Harika! Parmak izinin sadece ortak anahtarlarda kullanılabileceğini düşündüm.
Xiè Jìléi

Hata! Yanlışım, parmak izi getirilemedi, komutlar: gpg: anahtar XXXXXXXX: ortak anahtar olmadan gizli anahtar - atlanmış gpg: hata okuma anahtarı: gizli anahtar kullanılamıyor Aslında, neden sadece `` evet | ... 'işe yaramaz ve bence tek yol gpg yamasıdır. Teşekkürler
Xiè Jìléi

3

Bu konunun eski olduğunu biliyorum ve cevap biraz Gilles'e benziyor, ancak soruyu tamamen cevapladığını düşünüyorum (OP ile aynı sorunlara sahip olduğum için):

for i in `gpg --with-colons --fingerprint | grep "^fpr" | cut -d: -f10`; do gpg --batch --delete-secret-keys "$i" ; done

2

Gilles ve Dolanor'un cevaplarını, belirli bir anahtarı silmek istemeniz durumunda kullanışlı olan bu tek astarda birleştirdim:

gpg --fingerprint --with-colons ${GPG_KEY} |\
    grep "^fpr" |\
    sed -n 's/^fpr:::::::::\([[:alnum:]]\+\):/\1/p' |\
    xargs gpg --batch --delete-secret-keys

Orijinal soruyu cevaplamamak, ancak başka biri için yararlı olabilir.


1

Saklamak istediğiniz anahtarları dışa aktarın, dosyayı silin ve ardından yüzüğünüzü yeniden oluşturun.


Gpg'yi yamalamayı ve yeniden derlemeyi tercih ederim.
Xiè Jìléi
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.