Git 版本要求

  • 你需要 Git 2.34 及以上 才支持 SSH commit 签名
  • 检查你的 Git 版本:
git --version

配置签名 key 时需指定 signingKey

检查你的 Git 配置,确保如下设置(your_signing_key 替换为你的 key ID 或公钥内容)

git config --global gpg.format ssh
git config --global user.signingkey your_signing_key
git config --global commit.gpgsign true

这样的公钥内容需要指定:

cat ~/.ssh/id_ed25519.pub

之后:

git config --global gpg.format ssh
git config --global user.signingkey "<你的公钥内容>"

确认配置:

git config --global --get user.signingkey

尝试提交:

git commit -S -m "update: README.md"

可能出现的错误

root@DESKTOP-IAF6J7J:/home/liueic/talkFlow# git commit -S -m "update: README.md"
error: Couldn't get agent socket?

fatal: failed to write commit object

说明 Git 无法通过 SSH agent 访问你的私钥,常见于 WSL、Windows 或 SSH agent 没有启动/加载 key 的情况

在终端执行:

eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_ed25519

(如果你的私钥不是 id_ed25519,请替换为实际文件名)

确认 agent 已加载 key

ssh-add -l

一劳永逸的解决方法, ~/.bashrc~/.zshrc 里自动启动并加载 key

# 启动 ssh-agent 并自动添加私钥
if [ -z "$SSH_AUTH_SOCK" ] ; then
  eval "$(ssh-agent -s)"
  ssh-add ~/.ssh/id_ed25519 2>/dev/null
fi
如果你的私钥不是 id_ed25519,请替换为实际文件名。
最后修改:2025 年 05 月 30 日
如果觉得我的文章对你有用,请随意赞赏