在未安装 gpg 的提交中查看 git pgp 信号

View git pgp sigs in a commit with out gpg installed

在某些情况下,我将使用未安装 gpg 的系统,并且我不想花时间进行设置和安装 pub 密钥。我只想查看提交上的签名并将其复制到另一个系统以对其进行验证。我似乎无法找到一种方法来查看没有安装 gpg 的签名。当我尝试使用任何 git 命令查看它时,Git 只会给出一个错误,即 gpg 未安装。

有没有办法在系统上没有安装 gpg 的情况下查看 git 带有 pgp 签名的 pgp 签名提交?

我一直在到处寻找这个问题的答案,但没有找到任何有用的东西。感谢您提供的任何帮助或指点。

读取和验证签名

Is there a way to view git pgp signed commits with the pgp signature in tacked without having gpg installed on the system?

没想到会这样。如果您想查看详细信息,您至少需要有一个解析器来读取 OpenPGP 数据包和一个完整的实现来从属于的密钥中获取信息; GnuPG 几乎是唯一相关的免费软件 OpenGP 实现(除了 Go 语言的库和 Java/C# 的 Bouncy Castle)。虽然有一个 stripped-down 实现 gpgv 只用于验证签名,但它没有被 git 连接,你必须安装额外的软件(一个 stripped-down GnuPG 包),无论如何。

此外,OpenPGP 签名不包括证书(public 密钥)。要真正查看 签名,您必须获取它们——这也是由 GnuPG 执行的操作。最后,要在另一台设备上实际 验证 签名,您不仅需要签名,还需要 signed-off 数据(因此,git 目录) .

安装 GnuPG 并不麻烦

我很惊讶有一个 Linux 发行版没有默认安装 GnuPG,大多数包管理器使用它来验证包,它应该在几乎所有发行版的软件存储库中可用。

使用 "stub GnuPG"

进行实验

我尝试破解 exporting/dumping 签名 git 想要验证(在 $PATH 转储输入中名为 gpg 的脚本),但它看起来像git 正在做一些进一步的检查或沟通。