相关疑难解决方法(0)

Git错误 - gpg无法签署数据

我刚开始使用git,我通过自制软件安装git和gpg.由于某种原因,我在得到这个错误时,git commit 我看了很多关于这个主题的其他stackoverflow问题,但没有一个对我有用.如何修复此错误以便我可以成功上传.

error: gpg failed to sign the data
fatal: failed to write commit object
Run Code Online (Sandbox Code Playgroud)

git gnupg

106
推荐指数
12
解决办法
4万
查看次数

使用 SSH 与 GPG 签署提交有什么区别?

\n

GitHub 现在支持 SSH 提交验证,因此您可以使用自行生成的 SSH 公钥在本地签署提交和标签,这将使其他人对您所做更改的来源充满信心。如果提交或标签具有可加密验证的 SSH 签名,GitHub 会将提交或标签设为“已验证”或“部分验证”。

\n

如果您已使用 SSH 密钥通过 GitHub 进行身份验证,现在可以上传相同或不同的密钥对\xe2\x80\x99s 公钥以将其用作签名密钥。您可以添加到帐户的签名密钥数量没有限制。有关更多信息,请访问GitHub 文档中的SSH 提交验证。

\n
\n

鉴于最近发生的事件,我想知道:使用 SSH 密钥与 GPG 密钥签署提交之间有什么区别?

\n

注意: 这是一个类似的问题,询问 GPG 和 SSH 之间的一般差异。这个问题具体是关于使用其中一种或另一种进行签名之间的区别。

\n

git ssh github gnupg digital-signature

13
推荐指数
2
解决办法
4440
查看次数

使用gpg在eclipse中签署git提交

github有一个很好的功能,可以显示使用gpg密钥签名git commit.

我按照以下文章:

现在我可以使用命令行默认签署我的提交和标签.
(这在github存储库中也可见/标记为"已验证")

然而,即使我打开/关闭"签名"按钮,eclipse也拒绝(正确)签署任何git提交(使用gpg).它也没有显示是否签署了提交.

我做错了什么或是eclipse/egit还没有(还)能够处理gpg?

我使用以下工具

  • Eclipse Mars.1 + 2
  • GPG4Win 2.2.0
  • Git 2.8.2

eclipse git gnupg

7
推荐指数
2
解决办法
1461
查看次数

为什么git使用GPG密钥签名而不是使用SSH密钥?

SSH和GPG非对称密钥之间有什么区别?为什么git支持使用GPG进行签名而不是使用SSH代理?

git digital-signature ssh-keys public-key gpg-signature

7
推荐指数
2
解决办法
2015
查看次数

如何使用现有的 ssh 密钥签署 git 提交

根据 git,您现在可以使用现有的 ssh 密钥对提交进行签名。

https://github.blog/2021-11-15-highlights-from-git-2-34/#tidbits

接下来:https://unix.stackexchange.com/questions/269188/use-my-ssh-key-to-sign-git-commits

我也一直在浏览这个文档: https: //git-scm.com/docs/git-config#Documentation/git-config.txt-gpgprogram,但目前还不清楚如何使用它。

我已将 gpg 格式设置为 ssh 并将签名设置为 true,因此目前它正在尝试对其进行签名但失败。我相信我还需要设置 user.signingKey 但我不知道格式是什么,即git config --global user.signingKey <what-is-supposed-to-go-here>

我还有第二个问题。如果一年后我格式化我的电脑并丢失了我的密钥,我将无法验证这些提交是否仍然属于我。除了将密钥转储到某个在线驱动器中(无论如何我都可能会丢失它)之外,是否有一个好的标准将该密钥保存在某个地方?

编辑:我至少设法让 gpg 工作。以下:Git 错误 - gpg 无法签署数据,我的 gpg 崩溃了:

gpg: signing failed: Inappropriate ioctl for device gpg: [stdin]: clear-sign failed: Inappropriate ioctl for device

然后使用 Maven 在 MacOS 上添加export GPG_TTY=$(tty)到 bash,从“gpg:签名失败:设备的 ioctl 不合适”,最终为我工作,所以它至少使用 gpg 对其进行签名。

编辑:以为我设法让它工作,但没有。按照https://docs.github.com/en/authentication/connecting-to-github-with-ssh/generate-a-new-ssh-key-and-adding-it-to-the-ssh-agent,我创建了一个新的 ed25519 ssh 密钥。

之后你需要git config --global gpg.format "ssh" …

git ssh gnupg

6
推荐指数
2
解决办法
8468
查看次数

在企业环境中使用 x509 证书签署 git commit

我从文档中了解到可以对 git 标签和提交进行签名。

git config --global user.signingkey 0A46826A

文档:https : //git-scm.com/book/en/v2/Git-Tools-Signing-Your-Work

这适用于 GPG。有人用 X509 用户证书做过这样的事情吗?

看起来 GPG 与 x509 pki 证书不兼容或不可互换。由于这是在企业环境中,GPG 不是一个选项。

如果有人可以分享如何使用 x509 证书来实现这一点的想法或经验,那就太好了?需要什么以及实现这样的东西需要什么?

git configuration certificate x509

5
推荐指数
1
解决办法
1952
查看次数