Chiffrer et signer avec une clé secrète spécifique

20

J'ai une clé de carte à puce OpenPGP (YubiKey NEO) ainsi qu'une clé secrète locale installée dans mon trousseau de clés GnuPG.

Je voudrais crypter et signer un fichier avec la clé de ma carte, pas la clé de mon trousseau. Comment puis-je spécifier avec quelle clé je voudrais me connecter?

Si mon ID de clé secrète de système de fichiers est DEADBEEFet ma clé de carte à puce est DEADBEE5, comment puis-je signer avec cette clé?

Naftuli Kay
la source

Réponses:

11

Vous devez spécifier --default-key:

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

et vérifiez ensuite avec

gpg -d < output | head -1

Depuis la gpg manpage ( --signsection):

La clé à utiliser pour la signature est choisie par défaut ou peut être définie avec les options --local-user et --default-key.

Anthon
la source
gpg: conflicting commandsquand j'essaie de crypter et de signer.
Naftuli Kay
@NaftuliTzviKay Désolé --sign-key sert à signer d'autres clés avec une clé spécifique. J'ai mis à jour la réponse (et testé au préalable cette fois).
Anthon
--default-*n'a pas de sens sur la ligne de commande. Ces options concernent le fichier de configuration.
Hauke ​​Laging
1
La différence entre --local-useret --default-keyest que --local-usercela donnera une erreur si vous spécifiez une clé inexistante. Avec --default-key, il ignorera une clé inexistante et utilisera la première clé du trousseau de clés.
Wisbucky
15

La clé de signature est sélectionnée avec -u/ --local-user:

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

Cette option peut être donnée plusieurs fois afin de combiner les signatures de plusieurs clés:

gpg --local-user 0xDEADBEE5 --local-user 0x12345678 --sign file
Hauke ​​Laging
la source
Selon la page de manuel, l'utilisation --local-userest la même que l'utilisation --default-userde ma réponse
Anthon
1
@Anthon Cela conduit au même résultat. Cela ne signifie pas que cela --default-*devrait être recommandé pour cette utilisation. Je suis sur la liste de diffusion GnuPG depuis des années. Je n'avais jamais vu quelque chose comme ça auparavant.
Hauke ​​Laging du
Eh bien oui, il semble que le problème soit apparu une fois sur gnupg-users et que vous étiez celui qui a fourni la réponse lors de votre lecture de la page de manuel ;-). Pour moi, spécifier une option avec -keydans son nom me semble beaucoup plus approprié lorsque je veux utiliser une clé spécifique que de spécifier quelque chose avec -userYMMV.
Anthon
4
Je pense que @Anthon voulait dire --default-keydans son commentaire ci-dessus. Exécuter avec cela, une différence entre --local-useret --default-keyd'après mon expérience, est que le premier échoue si une clé correspondante n'est pas présente, tandis que le second retombera sur d'autres clés. Pour cette raison, je me méfierais beaucoup des --default-keyscripts.
Jack O'Connor
J'ai testé et confirmé le commentaire de @ JackO'Connor avec gpg 2.2.4. L'homme pour --default-keyditIf 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