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


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
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.