使用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无法读取临时密钥文件:- 确认当前用户对
C:\Users\MyName\AppData\Local\Temp目录拥有读写权限 - 临时修改
TMP环境变量,指向一个权限明确的自定义目录
- 确认当前用户对
更新Git版本
旧版Git对SSH签名的支持存在兼容性问题,升级至最新稳定版Git可解决部分已知bug。验证SSH密钥有效性
先执行ssh -T git@github.com验证密钥能否正常连接GitHub,确保SSH认证无问题后再尝试签名提交。
内容的提问来源于stack exchange,提问作者Brad Turek
相关产品推荐
相关产品推荐

