为你的每一次 Commit 添加 SSH 签名

我最近在配置 GPG 签名,这样可以在以后的每一次 Commit 中验证身份,同时在旁边显示 Verified 小徽标。

生成密钥

生成新密钥。

bash
ssh-keygen -t ed25519 -C "example@example.com"

如果和现在的 SSH 认证密钥冲突,就需要另外指定文件的名称。

bash
ssh-keygen -t ed25519 -C "example@example.com" -f ~/.ssh/id_ed25519_signing

配置签名

bash
# 创建允许的签名者配置文件
touch ~/.ssh/allowed_signers
# 复制签名公钥内容
cat ~/.ssh/id_ed25519_signing.pub

<allowed_signers> 修改成类似于example@example.com ssh-ed25519 公钥的内容形式。

bash
echo "<allowed_signers>" >> ~/.ssh/allowed_signers

Windows 与 Unix 换行符的风格不同,你可能还需要在VS Code等编辑器中手动修改文件的行尾序列或者使用sed -i 's/\r$//' ~/.ssh/allowed_signers修改。

全局启用

bash
# 使用 SSH 密钥作为签名格式
git config --global gpg.format ssh
# 指定私钥文件的路径
git config --global user.signingkey ~/.ssh/id_ed25519_signing
# 指定允许的签名者配置文件的路径
git config --global gpg.ssh.allowedSignersFile ~/.ssh/allowed_signers
# 自动签名提交
git config --global commit.gpgsign true

现在前往 SSH and GPG keys 继续配置;点击 New SSH key,类型选择Signing Key,添加名称和公钥。

配置完成

最后可以用git config --listgit log --show-signature -1再检查一遍即可。

提醒

提示Good "git" signature…即为验证成功。

GPG 签名

你问我开头提到的配置 GPG 签名去哪了?

🫠

被搞崩了。

《青年在选择职业时的考虑》 
《世界观的确立》 

评论区

评论加载中...