在GitHub上提交代码获得Verified签名标识
要在 GitHub 上提交代码并获得 ✅ “Verified” 签名标识,你需要使用 GPG(GNU Privacy Guard)或 SSH 密钥 来对你的提交进行签名。GitHub 会验证签名是否与你的账户绑定,从而显示 “Verified” 标签。
下面是完整的流程,使用 GPG 签名方式(更常见):
GPG 签名
第一步:生成 GPG 密钥
如果你还没有 GPG 密钥,可以用以下命令生成:
1 | |
选择:
类型:
RSA and RSA(默认)密钥长度:
4096有效期:根据你需要设置
姓名和邮箱:必须与 GitHub 上的邮箱一致
密码:用于保护你的密钥
生成后,列出你的密钥:
1 | |
你会看到类似:
1 | |
记住 ABCD1234EF567890,这是你的 GPG key ID。
第二步:将 GPG 公钥添加到 GitHub
导出你的公钥:
1 | |
复制输出的内容(以 -----BEGIN PGP PUBLIC KEY BLOCK----- 开头),然后:
登录 GitHub
进入 Settings → SSH and GPG keys
点击 “New GPG key”
粘贴你的公钥,保存
第三步:配置 Git 使用 GPG 签名
设置 Git 使用你的 GPG 密钥:
1 | |
确保你的 Git 用户邮箱与 GitHub 上的邮箱一致:
1 | |
第四步:提交代码并签名
现在你可以正常提交代码:
1 | |
Git 会自动使用 GPG 签名提交。
你也可以手动签名:
1 | |
然后推送:
1 | |
在 GitHub 上查看你的提交,应该会看到:
✅ Verified
验证签名是否成功(本地)
你可以运行:
1 | |
附加提示
如果你使用的是 GUI 工具或 VS Code,也可以配置 GPG 签名支持。
如果你使用的是 WSL 或非标准终端,可能需要设置 GPG_TTY:
1 | |
SSH 签名
GitHub 从 2023 年开始支持使用 SSH 密钥签名提交(SSH commit signing),这是一个比 GPG 更简单的方式来获得 ✅ Verified 标签,而且配置起来也更轻松。
步骤概览:
生成支持签名的 SSH 密钥(Ed25519)
配置 Git 使用该密钥进行签名
添加公钥到 GitHub
提交并签名代码
推送并查看 Verified 标签
第一步:生成支持签名的 SSH 密钥
GitHub 要求使用 Ed25519 密钥(支持签名),运行:
1 | |
这会生成两个文件:
~/.ssh/id_ed25519_signing(私钥)~/.ssh/id_ed25519_signing.pub(公钥)
第二步:将公钥添加到 GitHub
登录 GitHub
进入 Settings → SSH and GPG keys
点击 “New SSH key”
粘贴 id_ed25519_signing.pub 的内容
选择 “Signing Key”
点击 “Add SSH key”
第三步:配置 Git 使用 SSH 签名
告诉 Git 使用这个私钥进行签名:
1 | |
你也可以设置 Git 用户信息:
1 | |
第四步:签名提交代码
正常提交即可:
1 | |
Git 会自动使用 SSH 密钥进行签名。
第五步:推送并查看 Verified 标签
1 | |
然后打开 GitHub,查看你的提交记录,你应该会看到:
✅ Verified
表示你的提交已经通过 SSH 签名验证!
验证签名(本地)
你可以运行:
1 | |
会显示类似:
1 | |
附加提示
SSH 签名方式不需要安装 GPG,非常适合不想折腾密钥管理的用户。
你可以为不同项目使用不同的 SSH 密钥。
如果你用 VS Code 或其他 Git GUI,也可以启用 SSH 签名支持。