在MacOS上使用Eclipse(GPG)对GitHub进行签名验证提交

6

我开始使用Eclipse(2018-12),注意到在推送到GitHub时,我的提交记录没有经过验证的签名。

是否有办法让Eclipse使用我的公共GPG密钥为提交记录签名并推送到GitHub?

$ gpg version
gpg (GnuPG) 2.2.13

$ git --version
git version 2.20.1
更新于2019年3月22日 -
已经使用了2019-03版本(4.11.0),但无法使Eclipse签署已验证的提交。我在Git分段标签中看到了“签署提交”图标(锁形图标),并在提交时出现以下对话框。

找不到用于签署的GPG密钥。请使用提交者电子邮件地址配置GPG密钥,设置user.signingKey或禁用提交签名。

我可以在OSX Terminal中签署提交,并且我的Eclipse配置首选项为Team>Git>Configuration显示为:

User Settings选项卡:

 user:
    name = [myname]
    email = "[myname]@users.noreply.github.com"
    signingkey = [mykey]

我在Eclipse中没有看到与 .gitconfig 中相同的输入位置:


commit:
    gpgsign = true
3个回答

5

从Eclipse IDE 2019-03开始(4.11),将于2019年3月20日发布,Git提交可以使用GPG密钥进行签名

Git暂存视图中,有一个带锁的图标可用于启用签名:

enter image description here

如果您的Git配置中commit.gpgsign设置为true,则默认按下按钮。由于EGit不委托给命令行,而是使用JGit(这是Java中的Git实现),因此安装哪个版本的命令行Git或是否安装Git都无关紧要。使用Bouncy Castle访问密钥库,这意味着在Git配置中gpg.program被忽略。
即将发布的Eclipse 2019-03版本的里程碑3中,签名应该已经可以工作了(在Windows上有一个已经修复的错误,请参见我漏洞报告以获取解决方法)。

感谢您的快速回复。我想我必须等到2019年3月20日才能在Eclipse中使用我的签名提交。与此同时,回到终端! - CarlosFMeneses
收到更新。我看到锁了。仍然无法签署验证的提交。请查看修改后的答案。 - CarlosFMeneses
@CarlosFMeneses 很抱歉在 macOS 下无法为您工作。目前,密钥库的位置不可配置,应位于 ~/.gnupg 中。请检查此目录是否存在并且可以被普通用户读取。否则,请尝试删除 user.signingkey,以便通过名称和电子邮件进行密钥查找。与其他设置一样,commit.gpgsign 设置可以在全局 Git 配置或存储库的 .git/config 中完成。但是,此设置仅用于默认启用锁定按钮。观看我在 Windows 上展示此功能的视频 - howlger
~/.gnupg 目录存在且可读。尝试删除 usr.signinkey,该项仅存在于 .gitconfig 中。喜欢这个视频,已订阅。 - CarlosFMeneses
@howlger,我遇到了同样的问题,但我使用的是Ubuntu。我可以在Eclipse之外签署提交,但无法使用jgit/egit。:( - Cristiano

0

请检查您的Eclipse插件依赖列表中的JGit版本:如果是5.3,则应该是可能的。

接下来是JGit问题382212
几周前,更改集133402引入了一个GpgSigner的概念,它将签署提交。 GpgSigner将是特定实现(例如Bouncycastle或OpenPgP可执行文件)。

但这可能对您正在使用的Eclipse版本来说太近了。


JGit/EGit 5.3尚未发布。并非所有JGit功能都将被EGit使用。一些JGit功能被实现用于服务器端,例如由Google使用的Gitiles。 - howlger

0
在 Git 暂存视图中,有一个带锁的图标,请在提交和推送之前单击锁定,这样您就不会看到错误,并且它将推送到 git 存储库。

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