You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用SSH时git commit -S签名失败却仍完成提交的问题

Git SSH签名提交显示未验证的解决方法

先明确:你的提交其实已经完成签名了

从你提供的git cat-file -p HEAD输出能看到,提交里已经包含gpgsig字段和完整的SSH签名内容,说明签名操作本身是成功的。问题出在本地日志默认显示逻辑和平台验证规则两个层面。

1. 让本地git log显示签名状态

git log默认不会展示SSH签名的验证信息,只需添加参数即可查看:

git log --show-signature

执行后会看到类似这样的输出,确认本地验证通过:

commit 4d3bd971f2bfbjdue0d8258e5fae982492082fcd (HEAD -> example)
Good "ssh" signature for Example <example@domain.com> with ED25519 key SHA256:xxxxxx
Author: Example <example@domain.com>
Date:   Sun Feb 4 17:25:58 2024 +0200

    example

2. 解决平台PR提示未验证的问题

Git平台(如GitHub/GitLab)区分推送用SSH密钥和签名验证用SSH密钥,你需要把签名公钥添加到专门的签名密钥区域:

  • 进入平台账户设置的SSH密钥管理页面
  • 新建SSH密钥时,选择「Signing key」类型(不要选普通的Authentication key)
  • 粘贴你的id_ed25519.pub完整内容并保存

3. 优化Git配置避免路径问题

如果担心user.signingkey的路径出错,可以直接把公钥内容写入配置:

git config --global user.signingkey "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIGd+0zpC6Eq8X30s9cXSGFeROpzJxMZKyjlm+30PHKFwE"

这样无需依赖本地文件路径,配置更稳定。

内容的提问来源于stack exchange,提问作者user23345005

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.30 14:37:56