Как заставить maven-gpg-plugin использовать первичный ключ gpg вместо вложенного ключа? - PullRequest
1 голос
/ 28 июля 2011

У меня есть открытый ключ GPG с дополнительным ключом. Когда я пытаюсь подписать свои артефакты Maven как часть процесса выпуска, плагин подписывается с помощью дополнительного ключа вместо основного ключа.

Глядя на документы для плагина здесь: http://maven.apache.org/plugins/maven-gpg-plugin/sign-mojo.html

Я не вижу очевидного свойства, чтобы установить, какой ключ используется. Можно ли это контролировать?

Ответы [ 2 ]

1 голос
/ 19 декабря 2014

TLDR;Вы можете контролировать его, удалив или отменив подраздел.Рекомендуется отмена.

-

Это обсуждалось, например, в в этой проблеме типа .Кроме того, это влияет не только на пользовательский интерфейс - я создал свои ключи, используя gpg4win для Windows 7, а генерация ключей командной строки сгенерировала и pub, и вложенные ключи:

> gpg --gen-key

> gpg --list-keys

pub   2048R/xxxxxxxx 2014-12-18
uid       
sub   2048R/yyyyyyyy 2014-12-18

Комментарии говорят, чтоу вас есть два варианта:

вы хотите удалить дополнительный ключ, а затем подписать, развернуть снова

..

Iотозвал ключ (не удалял его), и это тоже сработало.

В комментариях к проблеме говорится, что документ был обновлен в отношении инструкций, но ссылка больше не работает.Используя некоторые кеши страниц, я смог спасти содержимое, которое читается так:

Удаление дополнительного ключа

Некоторые инструменты PGP по умолчанию генерируютподпишите ключ и используйте его для подписи вместо использования первичного ключа.Это проблема, если вы используете его для подписи артефактов и развертывания артефактов в центральном репозитории, поскольку Nexus не может получить идентификатор первичного ключа из подписи, созданной под ключом, поэтому он не может импортировать открытый ключ и не сможет проверитьартефакт.Исправление заключается в удалении ключа подписи, чтобы PGP использовал первичный ключ для подписи.

Чтобы получить представление о том, что у вас есть ключ подписи, выполните команду ниже со своим собственным идентификатором ключа:

$ gpg --edit-key A6BAB25C

gpg (GnuPG/MacGPG2) 2.0.17; Copyright (C) 2011 Free Software
Foundation, Inc. This is free software: you are free to change and
redistribute it. There is NO WARRANTY, to the extent permitted by law.

Secret key is available.

pub  2048R/A6BAB25C  created: 2011-08-31  expires: 2012-06-26  usage: SC
                       trust: ultimate      validity: ultimate
sub  2048R/DD289F64  created: 2011-08-31  expired: 2011-09-30  usage: E
sub  2048R/8738EC86  created: 2011-12-19  expires: 2012-06-16  usage: S
[ultimate] (1). Juven Xu (for testing) <test@juvenxu.com>

Как видно из приведенного выше примера, этот ключ имеет 2 вспомогательных клавиши с ID DD289F64 и 8738EC86.Выходные данные также показывают время создания и срок действия.Здесь важно использование: E обозначает шифрование, поэтому под ключ DD289F64 используется только для шифрования, S обозначает подпись, поэтому подключ 8738EC86 используется только для подписи.Если первичный ключ имеет субключ S, он будет использовать его для подписи, в противном случае сам будет выполнять задание подписи.Поэтому мы хотим удалить субключ 8787EC86.

Сначала выберите субключ, который мы хотим удалить, поскольку его индекс равен 2 (индексы начинаются с 0), мы запускаем команду:

gpg>клавиша 2

pub  2048R/A6BAB25C  created: 2011-08-31  expires: 2012-06-26  usage: SC
                       trust: ultimate      validity: ultimate
sub  2048R/DD289F64 created: 2011-08-31  expired: 2011-09-30  usage: E
sub* 2048R/8738EC86 created: 2011-12-19  expires: 2012-06-16  usage: S
[ultimate] (1). Juven Xu (for testing) <test@juvenxu.com>

Как видно из вывода, субключ 8787EC86 помечен *.Теперь удалите его:

gpg> delkey ​​

Do you really want to delete this key? (y/N) y

pub  2048R/A6BAB25C  created: 2011-08-31  expires: 2012-06-26  usage: SC
                       trust: ultimate      validity: ultimate
sub  2048R/DD289F64  created: 2011-08-31  expired: 2011-09-30  usage: E
[ultimate] (1). Juven Xu (for testing) <test@juvenxu.com>

Подсказка Если вы уже распространили свой открытый ключ, лучше удалить вспомогательный ключ подписи, а не удалятьэто, хотя в любом случае вы можете сделать свой первичный ключ в качестве ключа подписи.См. Руководство по конфиденциальности GNU, чтобы узнать разницу между удалением и отзывом.Чтобы отозвать субключ, используйте gpg> revkey вместо gpg> delkey.

Ya!8738EC86 больше не указан, последний шаг - сохранение нашего изменения:

gpg> save

Вот и все!Теперь вы можете проверить изменения, подписав файл, а затем проверить его.Вывод должен содержать что-то вроде:

gpg: подпись сделана ************************* с использованием *** идентификатора ключа [ВАШ-PRIMARY-KEY-ID]

Итак, для меня практическими шагами были

gpg --edit-key PRIMARYKEYID
key 1
revkey
[y]
[3]
save

и повторная установка знака / выпуска.

1 голос
/ 01 августа 2011

После того, как я задал несколько вопросов о списках рассылки, оказалось, что я был не единственным с этой проблемой.

В моем случае я создал свои пары ключей, используя GPG Keychain Access UI на моем Mac.Другие пользователи, которые использовали тот же инструмент для создания своих ключей, также сообщали о той же проблеме с Maven.

По любой причине, когда вы создаете пару ключей с помощью этого пользовательского интерфейса, она создает не только ключ верхнего уровня, но идополнительный ключ.Этого не происходит, когда вы используете инструменты командной строки для создания новой пары ключей.

Поэтому я перешел к командной строке, отменил подраздел, и все начало работать.

Я неконечно, если основная проблема связана с тем, как пользовательский интерфейс GPG KeyChain Access создает ключи, или же плагин maven читает ключи.

...