如何选择maven-gpg-plugin用于签署构件的GnuPG密钥?

11

我正在使用maven-gpg-plugin为maven工件签名。这个插件能够正常运行,但是我的GnuPG密钥环中有多个密钥,我希望能选择一个不同于GnuPG默认选择的密钥。

  1. 如果有多个密钥,GnuPG如何选择“默认”密钥?

  2. 在maven-gpg-plugin配置中是否有指定要使用的密钥的可能性?看起来keyname不起作用(我认为它只是选择密钥环而不是特定的密钥)。


有很多参数可以尝试。https://maven.apache.org/plugins/maven-gpg-plugin/sign-mojo.html。 - Aleksandr M
所有这些参数(至少根据它们的描述)都指定了密钥环,但并没有指定密钥环中的密钥。 - Gustave
您可以尝试使用gpgArguments,方法请参考https://dev59.com/Rmkw5IYBdhLWcg3w1d4m。 - Aleksandr M
1
似乎GPG只选择环中的第一个。 - Gustave
2
2.) <configuration> <keyname>0xA9D0740E</keyname> </configuration> 是有效的。在GPG方面,似乎有一些关于用户、密钥、ID和名称的混淆。 - Gustave
1个回答

6

GPG如何选择“默认”密钥,如果有多个密钥?

默认情况下,GnuPG选择私钥环中的第一个密钥,如果没有其他定义(例如使用default-key选项)。来自man gpg

--default-key name

    Use name as the default key to sign with. If this option is not used,
    the default key is the first key found in the secret keyring. Note 
    that -u or --local-user overrides this option. 

如果您不想让GnuPG自动决定使用哪个密钥,则<keyname>[keyname]</keyname>选择要使用的密钥。我认为这将作为local-key选项传递,因此它应该支持短密钥ID、长密钥ID、指纹和用户ID。GnuPG手册包含指定密钥的方法列表。大多数描述如何在此处指定密钥的手册使用短密钥ID,但我强烈建议不要这样做因为存在碰撞攻击的风险,而是使用整个指纹。

有进一步的选项来更改密钥的选择。请参考Maven GnuPG插件手册以获取有关各个选项的更多详细信息:


根据mvn-gpg-plugin文档keyname参数被传递为--local-user - Garret Wilson
没有任何一种方法现在还能够工作。 - Khoi

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接