Git提交报错:需配置user.signingkey或gpg.ssh.defaultKeyCommand求助
解决Git提交时的SSH签名配置错误
问题根源
该错误是因为Git启用了提交签名验证,但未正确配置用于SSH签名的密钥参数。
解决步骤
1. 确认当前签名相关配置
先检查Git的签名格式和提交签名状态:
git config --list | grep -E '(commit.gpgsign|gpg.format)'
如果输出里gpg.format不是ssh,或者commit.gpgsign为true但未配置密钥,就需要调整。
2. 设置签名格式为SSH
全局配置签名格式(对所有仓库生效):
git config --global gpg.format ssh
3. 配置SSH签名密钥
两种方式任选其一:
- 直接指定公钥路径:将路径替换为你本地SSH公钥的实际位置(比如
id_ed25519.pub或id_rsa.pub)
Windows用户注意使用Git Bash路径格式,例如git config --global user.signingkey ~/.ssh/id_ed25519.pub/c/Users/你的用户名/.ssh/id_ed25519.pub - 自动获取可用密钥:让Git通过
ssh-add列出的密钥自动选择git config --global gpg.ssh.defaultKeyCommand "ssh-add -L"
4. 确保提交签名已启用
如果之前未开启提交签名,执行以下命令全局启用:
git config --global commit.gpgsign true
5. 验证配置
执行命令确认参数已正确设置:
git config --list | grep -E '(user.signingkey|gpg.ssh.defaultKeyCommand|gpg.format|commit.gpgsign)'
额外检查
- 确认本地SSH公钥内容与GitHub账号中添加的公钥完全一致
- 若全局配置无效,可进入目标仓库目录,去掉
--global参数执行上述命令,设置仓库级配置
内容的提问来源于stack exchange,提问作者Angelfirenze
相关产品推荐
相关产品推荐

