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,请替换为实际文件名。
此处评论已关闭