如何给 commit sign 一下
最近在参加开源项目的时候,其中 Approver 要求我去给我的 commit sign 一下,也就是给对应的 commit 加上一个签名,这种签名有两种方式 Signed-off-by(您提供的这种):是一文本记录,用于表明责任和许可同意。它很容易被任何人复制和添加。 - GPG 签名(git commit -S):使用非对称加密技术为整个提交创建一个密码学上的数字签名。它可以验证提交确实来自其声称的作者,并且在传输过程中没有被篡改。这在安全性要求极高的项目中是强制要求的。 这里我们简单介绍一下如何给自己的 commit 加上对应的 GPG 签名 可以使用下面这个命令检查当前 commit 是否有赋上对应的签名
git log --show-signature
这个命令会显示详细的提交历史,并在每个提交信息下方附上 GPG 的签名验证结果。 在 macOS 上生成 GPG 密钥对(公钥和私钥)非常简单,推荐使用 GPG Suite,它提供了图形化和命令行两种方式。
打开终端(Terminal)
输入密钥生成命令, 在终端中输入以下命令:gpg –full-generate-key, 按下回车后,会进入一个交互式设置流程。
跟随提示进行操作 请选择您想要的密钥种类:直接按回车,选择默认的 (1) RSA and RSA。 RSA 密钥长度:输入 4096,然后按回车。 密钥的有效期限:输入一个时间,例如 2y 表示2年(0 表示永不过期)。然后按回车。 以上正确吗?:检查信息,输入 y 表示正确,按回车。
填写用户标识 真实姓名:输入您的名字(例如:Li Si),按回车。 电子邮件地址:输入您的邮箱地址,按回车。 注释:可选,直接按回车跳过。 检查所有信息是否正确,输入 O(大写字母O)表示OK,按回车。
设置密码(Passphrase) 会弹出一个小窗口,让您输入并确认使用私钥所需的密码。 同样,请设置一个强密码并牢记它。
生成密钥 之后,命令行会开始生成密钥。这个过程需要您随机移动鼠标和敲击键盘来生成随机数(熵),以增加密钥的随机性和安全性。 生成完成后,您会看到类似这样的提示:gpg: key 1A2B3C4D5E6F7G8H marked as ultimately trusted。其中的 1A2B3C4D5E6F7G8H 就是您的密钥ID。 生成后做什么?
列出您的密钥:您可以使用以下命令查看当前存储的所有密钥。 第一个是列出对应的公钥,第二个是列出对应的私钥
gpg --list-keys gpg --list-secret-keys
导出公钥:要将公钥分享给别人,您需要导出它。
将公钥导出到一个文件中(将 KEY_ID 替换为您的实际密钥ID或邮箱)
gpg --armor --export KEY_ID > my_public_key.asc
这个命令会生成一个 my_public_key.asc 的文本文件,您可以用邮件把它发送给您的联系人。文件内容是以 —–BEGIN PGP PUBLIC KEY BLOCK—– 开头的文本块。
上传到密钥服务器(可选):正如您上一个问题提到的,您可以选择将公钥上传到密钥服务器(如 keys.openpgp.org),方便他人查找。 务必做好私钥的备份! 可以在 GPG Keychain 中选中密钥,然后选择菜单栏中的 密钥 -> 导出…,勾选 允许导出私钥,将其保存到一个安全的地方(如加密的U盘或密码管理器)。私钥丢失将无法解密别人发给您的信息。