在Eclipse中使用gpg为git提交签名

9

Github有一个很不错的功能,可以展示git提交时使用的gpg密钥签名。

我按照以下文章进行操作:

现在我能够通过命令行默认地签署我的提交和标签。
(这也可以在github存储库中显示/标记为“已验证”)

然而,无论我是否打开/关闭“签名”按钮,Eclipse都无法(正确地)签署任何git提交(使用gpg)。 它也不显示提交是否已签名。

我使用以下工具:

  • Eclipse Mars.1+2
  • GPG4Win 2.2.0
  • Git 2.8.2
5个回答

6

使用Eclipse 2019-03(三年后)应该可以实现,其中包括EGit 5.3.0。

EGit 5.3.0可以使用GPG签署提交。

注意:EGit 5.3.0需要Eclipse Neon(4.6)或更高版本。
因此,只要您的Eclipse是Neon或更高版本,就可以在其中测试它。

Screenshot of the EGit Staging View with the new "Sign commit" icon -- https://wiki.eclipse.org/images/9/9f/Egit-commit-sign.png


在右上角的新图标将允许您切换提交签名的开或关状态。默认情况下,它从Git配置中读取。
如果配置选项commit.gpgsign设置为true,则该按钮将被默认选择。
将使用user.signingkey的值来确定签名密钥。
如果未设置该值,则将使用提交者的电子邮件地址查找密钥。
如果找不到密钥,则提交将失败。
将从您的GPG密钥环(~/.gnupg/pubring.kbx~/.gnupg/secring.gpg
在Windows上,如果存在%APPDATA%\gnupg目录,则使用该目录而不是~/.gnupg)。
请参阅以下GitHub帮助页面以获取有关GPG签名密钥的帮助:

不幸的是,Windows Git-Bash 将 GPG 密钥放在 %USERPROFILE%\.gnupg 中,而 Eclipse 4.18.0 不知道如何找到它们。 - Hydraxan14
@Hydraxan14 奇怪。它应该可以的。如果在设置了环境变量 HOME%USERPROFILE% 的 CMD 中启动 Eclipse,问题是否仍然存在? - VonC
VonC,我尝试过了,它还是保留着。1.将HOME设置为%USERPROFILE%2."%USERPROFILE%\eclipse\rust-2020-12\eclipse\eclipse.exe"3.尝试提交4.缺少签名密钥错误。 - Hydraxan14
user.signingkey 被添加到 %USERPROFILE%\.gitconfig 中,并且提交的电子邮件地址与密钥中的电子邮件地址匹配。 - Hydraxan14

6

1
以下是错误跟踪器的链接: https://bugs.eclipse.org/bugs/show_bug.cgi?id=491169 https://bugs.eclipse.org/bugs/show_bug.cgi?id=382212 看起来Eclipse插件需要签名,但签名会破坏Java中所需的JSE签名。他们试图只使用纯Java方式... 叹气.. 最新进展:2015-01。 - ST-DDT
1
有一些进展。他们至少已经开始了一些与此相关的工作。请参见https://bugs.eclipse.org/bugs/show_bug.cgi?id=382212#c14 - ST-DDT
2
看起来有一些进展!https://bugs.eclipse.org/bugs/show_bug.cgi?id=382212#c19(已解决_已修复) - ST-DDT
1
不仅是进展,它还将成为即将发布的版本的一部分(即将在本周四发布)。这个视频会告诉你更多:https://www.youtube.com/watch?v=2LZ6rxiLp-I&t=2m00s - Mickael

4

2022年更新:

自EGit 5.11(Eclipse 2021-03)以来,您可以


您也可以在Eclipse中提交时自动签署提交

以下方法适用于我:

  1. 在Eclipse首选项中引用您的GPG安装:enter image description here
  2. 按照以下方式更新您的.gitconfig:

添加您的签名密钥(替换0150436D9CD488B3,请参见https://docs.github.com/en/authentication/managing-commit-signature-verification/telling-git-about-your-signing-key了解如何查找您的密钥)

git config --global user.signingkey 0150436D9CD488B3

将您的 GPG 安装添加进来(替换路径):

git config --global gpg.program "C:\Program Files\Git\usr\bin\gpg.exe"

将自动签名设置为true:

git config --global commit.gpgsign = true

现在,“签署提交”切换按钮默认为切换状态:输入图像描述


2

0
可能是时候考虑使用Git 2.34或更高版本了,你可以使用SSH密钥来签署Git提交和标签。这个功能从2021年末开始就存在了。Git使用 ssh-keygen -Y 来签署和验证内容。我们的团队正在朝着这个方向前进,现在我们都使用2.35.1。以前我们使用GPG来完成这个功能。

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