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

使用SSH签名Git提交时遭遇「无法加载公钥」错误的问题

Git SSH签名提交:无法加载公钥的问题解决

问题原因

你错误地将ssh-add -L输出的公钥文本字符串直接设置为user.signingKey的值,但Git在处理SSH签名时,user.signingKey参数要求的是公钥文件的绝对路径,而非公钥的文本内容。Git会把你输入的字符串当作文件名去系统中查找,自然找不到对应的文件,因此抛出"No such file or directory"错误。

解决步骤

  1. 将SSH签名公钥保存到文件
    如果你的密钥是通过标准输入(stdin)添加到SSH代理的,先把公钥内容写入一个本地文件(比如~/.ssh/signing_key.pub):

    ssh-add -L | sed 's/ (stdin)$//' > ~/.ssh/signing_key.pub
    

    要是你原本就有生成时保存的公钥文件(比如id_ecdsa.pub),直接使用该文件即可。

  2. 修正Git的签名密钥配置
    将user.signingKey设置为上述公钥文件的绝对路径:

    # 全局配置(所有仓库生效)
    git config --global user.signingKey ~/.ssh/signing_key.pub
    # 或仓库级配置(仅当前仓库生效)
    git config user.signingKey ~/.ssh/signing_key.pub
    
  3. 验证签名提交
    再次执行提交命令测试:

    git commit --allow-empty --message='signing using ssh!'
    

额外注意事项

  • 确保你的Git版本≥2.34.0,这是Git支持SSH签名提交的最低版本要求。
  • 确认SSH代理处于运行状态,且签名密钥已成功添加(可通过ssh-add -l查看密钥指纹验证)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 23:36:38