Git 提交记录了用户的电子邮件地址。电子邮件地址用于确定谁是提交作者(Author)或提交执行者(Committer)。

但是电子邮件地址是每个人用git config 设置的属性。事实上,您可以通过更改设置轻松冒充他人。

作为针对欺骗的对策,通过对 Git 提交进行数字签名,您可以证明您是真实的人,而不是冒充者。特别是,如果您在 GitHub 上进行设置,您将看到已签名提交的“已验证”徽章。

GitのコミットにGnuPGで署名する

在本文中,我将向您展示如何在 macOS 上签署 Git 提交并将它们设置为在 GitHub 上显示“已验证”徽章。

安装所需工具

以下假设您使用的是 macOS。再次,家酿假定已安装。

使用 Homebrew 安装 GnuPG。

brew install gnupg

GnuPG牙齿,RFC4880实现定义的 OpenPGP 标准的软件数据和通信可以加密或数字签名。 GnuPG 也称为 GPG。

另一件事是使用 Homebrew 安装 pinentry-mac。

brew install pinentry-mac

GPGTools/pinentry是支持输入密码的软件。 pinentry-mac 是 macOS 版本的 pinentry,对于在钥匙串中存储密码短语特别有用。

生成 GPG 密钥

生成用于签名的公钥/私钥对。使用之前安装的 GnuPG。

GitHub 文档"生成新的 GPG 密钥 - GitHub Docs,所以请按照说明进行操作。

如果您不确定密钥的类型,RSA4096 位是一种常见且安全的选择。当然,您可以选择 RSA 以外的任何内容。

记住 GPG 密钥的密码,因为稍后签署提交时将使用它。

设置您的 GitHub 帐户

将生成的密钥对的公钥添加到您的 GitHub 帐户。此设置将为 GitHub 上的签名提交显示“已验证”徽章。

GitHub 文档"将 GPG 密钥添加到您的 GitHub 帐户 - GitHub Docs,所以请按照说明进行操作。

Git 设置

将生成的密钥对的密钥 ID 添加到您的 Git 设置中。此设置允许使用指定的私钥对 Git 提交进行签名。

GitHub 文档"告诉 Git 你的签名密钥 - GitHub Docs,所以请按照说明进行操作。

但是,这次我已经安装了 pinentry-mac。因此,请跳过在“如果您不使用 GPG 套件...”的外壳中设置环境变量 GPG_TTY 的步骤。请按照步骤配置 pinentry-mac。

签署提交

在 Git 中将提交作为签名提交:现在所有提交都已签名。

git config --global commit.gpgsign true

当您进行签名提交时,系统会要求您提供 GPG 密钥密码。如果已设置 pinentry-mac,将显示以下对话框,请输入密码。如果启用“保存在钥匙串中”,则密码将保存在钥匙串中。

GitのコミットにGnuPGで署名する

每次提交都不会询问密码。输入一次,gpg-agent 就会记住它。因此,即使您进行了签名提交,也不会增加太多提交的工作量。

如果您只想对特定的提交进行签名而不是对所有提交进行签名,请关闭上述设置并在提交时添加git commit -S-S 选项。但是,签署所有提交通常是个好主意。

概括

您现在已经签署了您的 Git 提交并将它们配置为在 GitHub 上显示“已验证”徽章。

我这里介绍了macOS上的方法,其他操作系统请参考GitHub文档或其他文章。

参考


原创声明:本文系作者授权爱码网发表,未经许可,不得转载;

原文地址:https://www.likecs.com/show-308622635.html

相关文章:

  • 2021-09-22
  • 2021-11-30
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2023-01-06
  • 2022-01-09
  • 2021-05-22
  • 2022-12-23
  • 2021-12-24
  • 2022-01-06
相关资源
相似解决方案