Jag har en OpenPGP-smartkortsnyckel (YubiKey NEO) samt en lokal hemlig nyckel installerad i min GnuPG-nyckelring.
Jag vill kryptera och signera en fil med mitt kortets nyckel, inte nyckeln i min nyckelring. Hur kan jag ange vilken nyckel jag vill skriva med?
Om mitt filsystems hemliga nyckel-id är DEADBEEF
och min smartkortsnyckel är DEADBEE5
, hur signerar jag med den nyckeln?
Svar
Du bör ange --default-key
:
gpg -s --default-key DEADBEE5 input > output
och kontrollera efteråt med
gpg -d < output | head -1
Från sidan gpg man
(--sign
):
Nyckeln som ska användas för signering väljs som standard eller kan ställas in med alternativen –local-user och –default-key.
Kommentarer
Svar
Signeringsnyckeln väljs med -u
/ --local-user
:
gpg --local-user 0xDEADBEE5 --sign file
Detta alternativ kan ges flera gånger för att kombinera signaturer för flera tangenter:
gpg --local-user 0xDEADBEE5 --local-user 0x12345678 --sign file
Kommentarer
- Enligt mansidan är
--local-user
samma som att använda--default-user
som i mitt svar - @Anthon Det leder till samma resultat. Det betyder inte ' t att
--default-*
bör rekommenderas för denna användning. Jag har varit på GnuPG-e-postlistan i flera år. Jag har aldrig sett något liknande förut. - Nåja, det verkar som att problemet kom upp en gång på gnupg-användare och att du var den som gav svaret med din läsning av mansidan ;-). För mig att ange ett alternativ med
-key
i dess namn känns det mycket mer lämpligt när jag vill använda en specifik nyckel än att ange något med-user
YMMV . - Jag tror att @Anthon menade
--default-key
i sin kommentar ovan. Att köra med det är en skillnad mellan--local-user
och--default-key
enligt min erfarenhet att den första misslyckas om en matchande nyckel inte är ' är inte närvarande, medan den andra faller tillbaka till andra tangenter. Av den anledningen är jag ' mycket försiktig med att sätta--default-key
i skript. - Jag testade och bekräftade @ JackO ' Connor ' s kommentar med gpg 2.2.4. Mannen för
--default-key
sägerIf 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.
gpg: conflicting commands
när jag försöker kryptera och underteckna.--default-*
är lite meningsfullt på kommandoraden. Dessa alternativ är för konfigurationsfilen.--local-user
och--default-key
är att--local-user
ger ett fel om du anger en nyckel som inte finns. Med--default-key
ignoreras en nyckel som inte finns och den första nyckeln används i nyckelringen.