Зашифруйте и подпишите с определенным секретным ключом

20

У меня есть ключ смарт-карты OpenPGP (YubiKey NEO), а также локальный секретный ключ, установленный в моей связке ключей GnuPG.

Я хотел бы зашифровать и подписать файл ключом моей карты, а не ключом в моей связке ключей. Как я могу указать, какой ключ я хотел бы подписать?

Если у меня есть идентификатор секретного ключа файловой системы, DEADBEEFа ключ смарт-карты - DEADBEE5как подписать этот ключ?

Нафтули Кей
источник

Ответы:

11

Вы должны указать --default-key:

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

и проверить потом с

gpg -d < output | head -1

Со gpg manстраницы ( --signраздела):

Ключ, который будет использоваться для подписи, выбирается по умолчанию или может быть установлен с помощью параметров --local-user и --default-key.

Энтон
источник
gpg: conflicting commandsкогда я пытаюсь зашифровать и подписать.
Нафтули Кей
@NaftuliTzviKay Извините - ключ -sign для подписи других ключей с определенным ключом. Я обновил ответ (и протестировал заранее на этот раз).
Anthon
--default-*имеет мало смысла в командной строке. Эти параметры предназначены для файла конфигурации.
Хауке Лагинг
1
Разница между --local-userи --default-keyзаключается в том, что --local-userэто даст ошибку, если вы укажете несуществующий ключ. С помощью --default-keyон будет игнорировать несуществующий ключ и использовать первый ключ в связке ключей.
Висбуки
15

Ключ подписи выбирается с помощью -u/ --local-user:

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

Эта опция может быть задана несколько раз для объединения подписей нескольких ключей:

gpg --local-user 0xDEADBEE5 --local-user 0x12345678 --sign file
Хауке Лагинг
источник
Согласно man-странице использование --local-userаналогично использованию --default-userв моем ответе
Anthon
1
@Anthon Это приводит к тому же результату. Это не значит, что это --default-*следует рекомендовать для такого использования. Я был в списке рассылки GnuPG в течение многих лет. Я никогда не видел ничего подобного раньше.
Хауке Лагинг
Ну да, похоже , вопрос пришел однажды на GNUPG пользователей , и что вы , где тот , кто дал ответ с вашим чтением страницы человека ;-). Для меня указание параметра с -keyего именем кажется гораздо более подходящим, когда я хочу использовать определенный ключ, чем указание чего-либо с помощью -userYMMV.
Энтон
4
Я думаю, что @Anthon имел --default-keyв виду в своем комментарии выше. Работая с этим, одно из различий между мной --local-userи --default-keyмоим опытом состоит в том, что первый отказывает, если соответствующий ключ отсутствует, а второй - к другим ключам. По этой причине я бы очень осторожно вставлял --default-keyсценарии.
Джек О'Коннор
Я протестировал и подтвердил комментарий @ JackO'Connor с помощью gpg 2.2.4. Человек для --default-keyговоритIf 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