Bagaimana cara menghapus kunci rahasia gpg dengan paksa, tanpa sidik jari?


11

Kecelakaan itu menghasilkan sebagian besar kunci rahasia (tanpa kunci publik) di gantungan kunci GPG, dan saya telah menulis skrip untuk menghapus kunci-kunci itu, tetapi GPG tidak mengizinkan saya untuk melakukan itu:

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

baik saya tahu apa yang saya lakukan dan saya tahu mungkin ada duplikasi key-id (s), tetapi sepertinya tidak ada cara untuk memaksa untuk menghapusnya, meskipun berikut ini tidak berfungsi juga:

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

Ada ide?

Jawaban:


6

Gunakan gpg --list-secret-keys --with-colons --fingerprintuntuk menghasilkan daftar sidik jari dalam format yang mudah diurai. Ambil garis bentuk yang sesuai dengan tombol yang ingin Anda hapus, dan berikan sidik jari ( untuk) ke .fpr:::::::::xxxx:xxxxgpg --batch --delete-secret-keys

Perintah berikut menghasilkan semua sidik jari kunci rahasia. Pastikan untuk memilih hanya yang ingin Anda hapus!

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

Bagus! Saya pikir sidik jari hanya tersedia di kunci publik.
Xiè Jìléi

Ups! Saya salah, sidik jari tidak dapat diambil dari, perintah yeilds: gpg: key XXXXXXXX: kunci rahasia tanpa kunci publik - dilewati gpg: kunci pembacaan kesalahan: kunci rahasia tidak tersedia. Sebenarnya, saya hanya ingin tahu mengapa ` ya | ... 'tidak berfungsi, dan saya pikir satu-satunya cara adalah menambal pada gpg. Terima kasih
Xiè Jìléi

3

Saya tahu topik ini sudah lama, dan bahwa jawabannya agak mirip dengan Gilles, tapi saya pikir itu menjawab pertanyaan sepenuhnya (karena saya memiliki masalah yang sama dengan OP):

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

2

Saya menggabungkan jawaban oleh Gilles dan Dolanor ke dalam liner satu ini yang berguna jika Anda ingin menghapus kunci tertentu:

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

Tidak menjawab pertanyaan awal, tetapi mungkin bermanfaat untuk orang lain.


1

Ekspor kunci yang ingin Anda simpan, hapus file dan buat ulang cincin Anda.


Saya lebih suka untuk menambal & mengkompilasi ulang gpg.
Xiè Jìléi
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.