He reinstalado mi sistema operativo (Ubuntu 16.04) y tengo un antiguo directorio .gnupg que contiene:
gpg-agent.conf
gpg-agent-info-<hostname>
gpg.conf
private-keys-v1.d
pubring.gpg
secring.gpg
S.gpg-agent
trustdb.gpg
Me gustaría importar mis viejas claves públicas y privadas en el nuevo gnupg. (No simplemente copié el directorio .gnupg en la nueva instalación, porque entiendo que el nuevo gnupg2 tiene algunas diferencias en el formato de la base de datos que forman parte de las nuevas opciones de cifrado de la CE).
Lo siguiente funcionó para las claves públicas pero falló para las claves secretas:
gpg --export --keyring=~/.gnupg.old/pubring.gpg | gpg --import
gpg --export-secret-keys --keyring=~/.gnupg.old/secring.gpg | gpg --import
Este último respondió con:
gpg: can't open `~/.gnupg/secring.gpg' <== New Secret Keyring
gpg: WARNING: nothing exported
gpg: no valid OpenPGP data found.
gpg: Total number processed: 0
Tenga en cuenta que no se puede abrir mi nuevo anillo secreto. Da el mismo error al intentar exportar a un archivo:
gpg --export-secret-keys --keyring=~/.gnupg.old/secring.gpg > secret.asc
gpg: can't open `~/.gnupg/secring.gpg' <== New Secret Keyring
gpg: WARNING: nothing exported
Como mi clave secreta tiene la parte privada de la clave maestra eliminada, también intenté lo mismo con --export-secret-subkeys
, pero la respuesta fue la misma. Poner mi clave ID (dirección de correo electrónico) después de la exportación tampoco funciona. Por otro lado, puedo enumerar las claves:
gpg --list-keys --keyring=~/.gnupg.old/secring.gpg
gpg: Oops; key lost!
node 0x1e7ee00 01/00 type=secret-key
node 0x1e9cbd0 00/00 type=user-id "Me <Me@home.com>" ....
node 0x1e99dd0 00/00 type=signature class=13 keyid=XXXXXXXX ts=1383637282
node 0x1e9c510 00/00 type=secret-subkey
node 0x1eaa210 00/00 type=signature class=18 keyid=XXXXXXXX ts=1449138073
node 0x1eaf1f0 00/00 type=secret-subkey
node 0x1eaf580 00/00 type=signature class=18 keyid=XXXXXXXX ts=138363647
(Supongo que "Clave perdida" se refiere a la clave maestra secreta despojada). ¿Alguien puede indicarme cómo resolver esto?
Con la ayuda de @Jens (abajo), funciona lo siguiente:
gpg --no-default-keyring --secret-keyring=~/.gnupg.old/secring.gpg --export-secret-keys | gpg --import
--no-default-keyring
y--secret-keyring
antes--list-secret-keys
produce una salida reconocible. Entonces, déjame ver lo que tengo ahora.