持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第17天,点击查看活动详情
如何在 Git 中签署提交
我将只介绍如何在终端中执行此操作,因为这提供了跨操作系统的统一体验。如果你对终端不满意,你几乎只需复制命令即可。
先决条件
除了 Git 本身,唯一的先决条件是安装 GPG 命令行实用程序。
你可以验证它是否安装了gpg --version.
视窗
Git 重击
如果你安装了 Git BASH(可选地与Git for Windows捆绑在一起),那么你已经可以访问 GPG。只需启动一个 Git BASH 实例,它就会立即可用。
Gpg4win
如果你没有 Git BASH,则无需安装它。你可以安装Gpg4win,它将在全球范围内提供 GPG,因此你可以从 PowerShell 中使用它。
安装 Gpg4win 时,你可以取消选中所有附加组件,因为我们计划使用终端,所以我们不需要它们。
如果你已打开 PowerShell,则必须重新启动它才能使用 GPG。
Linux
你的发行版很可能已经包含 GPG。如果没有,那么你可以通过包管理器安装它。
适合(Debian / Ubuntu)
sudo apt install gnupg
pacman (Arch / Manjaro)
sudo pacman -S gnupg
如何生成 GPG 密钥
如果你已经拥有 GPG 密钥,则可以跳过此步骤。重复使用 GPG 密钥非常好。只需阅读以下内容并验证你的密钥是否与 Git 和 GitHub 兼容。
你可以通过以下方式获取 GPG 密钥列表:
gpg --list-keys
首先,我们需要生成一个 RSA 密钥对。下面将启动一个交互式脚本,该脚本将提出问题,以便我们提供必要的信息。
gpg --full-gen-key
- 对于你想要什么样的密钥,输入
1“RSA 和 RSA”。 - 对于密钥大小,输入
4096. 这是 GitHub 和 GitLab 的最小大小,GPG 将让我们生成的最大大小。 - 钥匙应该持续多长时间,使用适合你的任何东西。默认值为
0,这意味着永不过期。 - 通过输入验证信息是否正确
y。
GPG 将要求你提供存储在你的密钥中的个人信息。
- 你的姓名,可以是至少 5 个字符的长度。
- 你的电子邮件地址,使用你计划提交的电子邮件。你必须已在要推送的远程帐户上验证此电子邮件。
- 评论,你可以输入任何内容,或按回车键将其留空。
- 通过输入验证信息是否正确
o。
root@799d1cc3c99c:/# gpg --full-gen-key
gpg (GnuPG) 2.2.19; Copyright (C) 2019 Free Software Foundation, Inc.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Please select what kind of key you want:
(1) RSA and RSA (default)
(2) DSA and Elgamal
(3) DSA (sign only)
(4) RSA (sign only)
(14) Existing key from card
Your selection? 1
RSA keys may be between 1024 and 4096 bits long.
What keysize do you want? (3072) 4096
Requested keysize is 4096 bits
Please specify how long the key should be valid.
0 = key does not expire
<n> = key expires in n days
<n>w = key expires in n weeks
<n>m = key expires in n months
<n>y = key expires in n years
Key is valid for? (0) 0
Key does not expire at all
Is this correct? (y/N) y
GnuPG needs to construct a user ID to identify your key.
Real name: Seth Falco
Email address: seth@example.org
Comment:
You selected this USER-ID:
"Seth Falco <seth@example.org>"
Change (N)ame, (C)omment, (E)mail or (O)kay/(Q)uit? o
在执行上述所有步骤后,这是我的终端的外观。
GPG 将要求提供密码来保护密钥。你可以将其设置为任何内容,或者将其留空以完全没有密码。当然,使用好的密码短语是理想的,如果你使用密码管理器,请依赖你的密码管理器。
密码提示取决于环境,因此对于不同的用户,这一步看起来会有所不同,但它所要求的实际上是相同的。
它将开始生成密钥,这需要大量随机生成的数据。在你的 PC 上执行操作将有助于使其更加随机,因此我建议你在生成密钥时四处移动鼠标。