Як видалити секретні ключі gpg насильно, без відбитків пальців?


11

Це випадково створило масу секретних ключів (без відкритого ключа) у ключі GPG, і я написав сценарій для видалення цих ключів, але GPG не дозволяє мені це зробити:

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

добре, я знаю, що я роблю, і я знаю, що можуть бути скопійовані ідентифікатори ключів, але, здається, немає ніякого способу змусити їх видалити, хоча й наступне не працює:

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

Будь-яка ідея?

Відповіді:


6

Використовуйте gpg --list-secret-keys --with-colons --fingerprintдля створення списку відбитків пальців у форматі, що легко проаналізується. Візьміть рядки форми, які відповідають клавішам, які потрібно видалити, та передайте відбитки пальців ( ) .fpr:::::::::xxxx:xxxxgpg --batch --delete-secret-keys

Наступна команда створює всі таємні відбитки ключів. Обов’язково виберіть лише ті, які потрібно видалити!

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

Чудово! Я думав, що відбиток пальців доступний лише у відкритих ключах.
Xiè Jìléi

На жаль! Я помиляюся, відбиток пальця не вдалося отримати, команда yeilds: gpg: ключ XXXXXXXX: секретний ключ без відкритого ключа - пропущений gpg: помилка читання ключа: секретний ключ недоступний Насправді, мені просто цікаво, чому ` так | ... 'не працює, і я думаю, що єдиний спосіб - це виправлення на gpg. Дякую
Xiè Jìléi

3

Я знаю, що ця тема стара, і що відповідь якось схожа на Гілла, але я думаю, що вона відповідає на питання цілком (оскільки у мене були такі ж проблеми, як і в ОП):

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

2

Я поєднав відповіді Гілла та Доланора в цей один вкладиш, який корисний у випадку, якщо ви хочете видалити певний ключ:

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

Не відповідає на початкове запитання, але може бути корисним для когось іншого.


1

Експортуйте ключі, які ви хочете зберегти, видаліть файл, а потім відтворіть кільце.


Я вважаю за краще скопіювати патч і перекомпілювати gpg.
Xiè Jìléi
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.