Solución:
Encontré esta propaganda que dice que hay un comando que puede ejecutar y que esencialmente le dirá a su aplicación local de gpg que escanee la nueva tarjeta y la use en su lugar si las cosas funcionan. así que en el caso de usar una tarjeta de respaldo, no es el peor de los casos ejecutar un “init” para que funcione.
https://forum.yubico.com/viewtopic38a1.html?f=35&t=2400
Corriendo
gpg-connect-agent “scd serialno” “aprender –forzar” / bye
actualizará los talones de claves secretas para las claves PGP en la clave insertada actualmente. Entonces, ejecutar eso después de la inserción de la clave hará que gpg use la clave insertada actualmente.
Después de mucho ensayo y error, finalmente encontré una manera de lograrlo. Aquí hay una respuesta a mi propia pregunta en caso de que ayude a alguien:
El truco consistía en no intentar exportar las mismas subclaves a las dos Yubikeys (a gpg no le gusta eso) sino generar diferentes subclaves. En mi llavero tengo 6 subclaves: 3 para el Yubikey principal (Firmar, Encriptar, Auth) y 3 para el Yubikey de respaldo. Exporté las claves privadas correspondientes a los Yubikeys, que esta vez no necesitaron el truco para restaurar una copia de seguridad de .gnupg
. Finalmente, cifro mis archivos usando ambos claves públicas, por lo que puedo descifrarlas con Yubikeys:
gpg -e -r [keyid1]! -r [keyid2]! [file]
No olvide el signo de exclamación al final de cada identificación de clave. De lo contrario, por alguna razón, gpg entenderá que para cada destinatario desea “alguna clave en el mismo llavero” y seleccionará la misma clave dos veces por defecto.
Ahora gpg aceptará cualquiera de las claves privadas para descifrar el archivo. En el caso de Yubikeys, te pedirá que conectes el primero, y si cancelas, te pedirá el segundo, para que puedas usar cualquiera. Especifiqué la clave principal en la primera -r
así que gpg pregunta directamente por el Yubikey principal y no me molestará con el de respaldo. Para simplificar las cosas, asigné un alias a todo el comando gpg con ambos keyids para yk_encrypt
.
En lugar de hacer una copia de seguridad de un directorio completo, puede exportar (crear una copia de seguridad de) la clave usando, por ejemplo,
gpg -a -o seckey.asc --export-secret-key ABCD1234
e importarlo de nuevo (después de pasar a la primera tarjeta) con
gpg --import seckey.asc
GPG solicita la tarjeta específica porque después de mover la clave a la tarjeta, almacena una clave talón en su sistema, que vincula esa clave a esa tarjeta. Si elimina la clave de gpg (por ejemplo, gpg –delete-secret-and-public-key ABCD1234) y la referencia (Uno de los muchos potencialmente en, por ejemplo,
C: users someUser AppData Roaming gnupg private-keys-v1.d o
/home/someUser/.gnupg/private-keys-v1.d
) luego puede insertar la copia de seguridad Yubikey y
gpg --card-status
para crear un código auxiliar que haga referencia a esa clave en el segundo Yubikey en lugar del primero.
usted podría También mantenga la clave exportada segura y utilícela como respaldo, pero esa no fue la pregunta.