¿Cómo eliminar claves secretas gpg por la fuerza, sin huella digital?


11

Su accidente generó una gran cantidad de claves secretas (sin clave pública) en el llavero GPG, y he escrito un script para eliminar esas claves, pero GPG no me permite hacer eso:

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

bueno, sé lo que estoy haciendo y sé que puede haber una clave duplicada (s), pero parece que no hay forma de forzar su eliminación, aunque lo siguiente tampoco funciona:

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

¿Alguna idea?

Respuestas:


6

Utilícelo gpg --list-secret-keys --with-colons --fingerprintpara generar la lista de huellas digitales en un formato fácilmente analizable. Tome las líneas del formulario que corresponden a las teclas que desea eliminar y pase las huellas digitales (a ) .fpr:::::::::xxxx:xxxxgpg --batch --delete-secret-keys

El siguiente comando genera todas las huellas digitales de claves secretas. ¡Asegúrese de seleccionar solo los que desea eliminar!

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

¡Excelente! Pensé que la huella digital solo está disponible en claves públicas.
Xiè Jìléi

¡Uy! Estoy equivocado, no se pudo obtener la huella digital, el comando Yeilds: gpg: clave XXXXXXXX: clave secreta sin clave pública - gpg omitido: clave de lectura de error: clave secreta no disponible De hecho, solo me pregunto por qué ` si | ... 'no funciona, y creo que la única forma es parchear en gpg. Gracias
Xiè Jìléi

3

Sé que este tema es antiguo y que la respuesta se parece un poco a Gilles, pero creo que responde totalmente a la pregunta (ya que tuve el mismo tipo de problemas que OP):

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

2

Combiné las respuestas de Gilles y Dolanor en este revestimiento que es útil en caso de que desee eliminar una clave específica:

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

No responde la pregunta original, pero podría ser útil para otra persona.


Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.