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

使用SSH密钥签名Git提交时出现格式无效等错误的原因

Git SSH签名提交报错:invalid format 解决方法

问题描述

已按GitHub官方文档配置Git使用SSH密钥进行提交签名,但执行git commit -S时出现以下错误:

error: Load key 
"C:\\Users\\MyName\\AppData\\Local\\Temp/.git_signing_key_tmpC5KwFc": invalid format?

fatal: failed to write commit object

可能的原因及解决方法

  • 检查SSH密钥格式
    确保你的SSH私钥是OpenSSH格式,而非PuTTY的PPK格式。执行命令查看密钥内容:

    cat ~/.ssh/id_ed25519  # 替换为你的实际密钥文件名
    

    合法的OpenSSH私钥开头应为-----BEGIN OPENSSH PRIVATE KEY-----。如果是PPK格式,需用PuTTYgen工具转换为OpenSSH格式。

  • 确认Git签名配置正确性
    检查Git的SSH签名相关配置:

    git config --global gpg.format ssh
    git config --global user.signingkey ~/.ssh/id_ed25519  # 替换为你的密钥路径
    

    Windows系统下路径需使用正斜杠(/)或双反斜杠(\),避免路径解析错误。

  • 排查临时目录权限
    Windows系统中临时目录权限可能导致Git无法读取临时密钥文件:

    1. 确认当前用户对C:\Users\MyName\AppData\Local\Temp目录拥有读写权限
    2. 临时修改TMP环境变量,指向一个权限明确的自定义目录
  • 更新Git版本
    旧版Git对SSH签名的支持存在兼容性问题,升级至最新稳定版Git可解决部分已知bug。

  • 验证SSH密钥有效性
    先执行ssh -T git@github.com验证密钥能否正常连接GitHub,确保SSH认证无问题后再尝试签名提交。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 04:01:08