¿Cómo exportar claves secretas desde GnuPG, incluidas las identificaciones con foto?

2

Estoy intentando crear una clave OpenPGP con una identificación con foto usando GnuPG y luego exportarla, para que pueda importarse en una computadora diferente.

Cualquier prueba que haya hecho la identificación con foto nunca aparece después de la importación en la nueva computadora. Como ejemplo, inicié una máquina virtual sin disco duro y un CD de Linux Mint, y luego la ejecuté:

wget http://lorempixel.com/200/200/ -O test.jpg
gpg --gen-key # minimum options
gpg --edit-key -- -test-
# gpg> addphoto test.jpg
# gpg> save
gpg -K  # the photo is there

gpg --export-secret-key -- -test- > exported.secret.gpg
gpg --delete-secret-key -- -test-
gpg --delete-key -- -test-

gpg -K # verify nothing left:
gpg -k

gpg --import exported.secret.gpg
gpg -K

¡La foto no está ahí! ¿Cómo debería hacerse esto?

    
pregunta Toni Homedes i Saun 04.02.2016 - 09:01
fuente

2 respuestas

2

La foto está en la parte pública de la clave, por lo que también debe exportarla:

gpg --export -test- > exported.public.gpg

Luego vuelva a importar ambas claves:

gpg --import exported.secret.gpg exported.public.gpg

Y la foto está ahí.

    
respondido por el Mark Koek 04.02.2016 - 13:11
fuente
3

Análisis de problemas

Puede verificar lo que está contenido en la exportación canalizando a gpg --list-packets ; También puse grep para los identificadores de paquetes (comenzando con dos puntos):

gpg --export-secret-keys a4ff2279 | gpg --list-packets | grep '^:'

Lo que dice la página del manual debería enumerar un paquete de atributos como el siguiente, pero no lo hace:

:attribute packet: [jpeg image of size 12899]

La configuración de la opción de exportación tampoco:

gpg --export-options export-attributes --export-secret-keys a4ff2279 | gpg --list-packets | grep '^:'

Este comportamiento podría o no ser esperado; los atributos pueden ser de gran tamaño, aunque parece inesperado que los ID de usuario se se exporten pero los atributos no.

La solución

Recomiendo simplemente adicionalmente exportar la clave pública, que contiene toda la información sobre la clave (pero la información de confianza):

gpg --export -- -test- > exported.public.gpg

E importe esto después de importar las claves secretas, igual que hizo con las claves privadas ( gpg --import exported.secret.gpg exported.public.gpg ). Los contenidos (también el paquete de atributo de usuario faltante y las firmas que tiene) se fusionarán.

    
respondido por el Jens Erat 04.02.2016 - 13:18
fuente

Lea otras preguntas en las etiquetas