Cifrar y firmar con clave secreta específica

20

Tengo una clave de tarjeta inteligente OpenPGP (YubiKey NEO), así como una clave secreta local instalada en mi llavero GnuPG.

Me gustaría cifrar y firmar un archivo con la clave de mi tarjeta, no con la clave de mi llavero. ¿Cómo puedo especificar con qué clave me gustaría firmar?

Si mi ID de clave secreta del sistema de archivos es DEADBEEFy mi clave de tarjeta inteligente es DEADBEE5, ¿cómo firmo con esa clave?

Naftuli Kay
fuente

Respuestas:

11

Debe especificar --default-key:

gpg -s --default-key DEADBEE5 input > output

y verifique luego con

gpg -d < output | head -1

Desde la gpg manpágina ( --signsección):

La clave que se utilizará para firmar se elige de forma predeterminada o se puede configurar con las opciones --local-user y --default-key.

Anthon
fuente
gpg: conflicting commandscuando trato de encriptar y firmar.
Naftuli Kay
@NaftuliTzviKay Lo sentimos, la clave de signo es para firmar otras claves con una clave específica. Actualicé la respuesta (y probé de antemano esta vez).
Anthon
--default-*tiene poco sentido en la línea de comando. Estas opciones son para el archivo de configuración.
Hauke ​​Laging
1
La diferencia entre --local-usery --default-keyes que --local-userdará un error si especifica una clave inexistente. Con --default-key, ignorará una clave inexistente y usará la primera clave en el llavero.
Wisbucky
15

La clave de firma se selecciona con -u/ --local-user:

gpg --local-user 0xDEADBEE5 --sign file

Esta opción se puede dar varias veces para combinar las firmas de varias claves:

gpg --local-user 0xDEADBEE5 --local-user 0x12345678 --sign file
Hauke ​​Laging
fuente
Según la página de manual, usar --local-useres lo mismo que usar --default-useren mi respuesta
Anthon,
1
@Anthon Lleva al mismo resultado. Eso no significa que --default-*deba recomendarse para este uso. He estado en la lista de correo de GnuPG durante años. Nunca había visto algo así antes.
Hauke ​​Laging
Bueno, sí, parece que el problema surgió una vez en gnupg-users y que usted fue quien proporcionó la respuesta con su lectura de la página del manual ;-). Para mí, especificar una opción con -keysu nombre me parece mucho más apropiado cuando quiero usar una clave específica que especificar algo con -userYMMV.
Anthon
44
Creo que @Anthon quiso decir --default-keyen su comentario anterior. Correr con eso, una diferencia entre --local-usery --default-keyen mi experiencia, es que la primera falla si no hay una clave coincidente, mientras que la segunda recurrirá a otras claves. Por esa razón, sería muy cauteloso de poner --default-keyguiones.
Jack O'Connor
Probé y confirmé el comentario de @ JackO'Connor con gpg 2.2.4. El hombre --default-keydiceIf there is no secret key available for any of the specified values, GnuPG will not emit an error message but continue as if this option wasn't given.
wisbucky