GitHub提交签名配置失败:密钥格式无效问题求助
GitHub SSH提交签名格式错误解决方案
已执行操作
- 在Git Bash生成密钥:
ssh-keygen -m PEM -t ed25519 -C "你的邮箱" - 将生成的公钥上传至GitHub
- 配置Git全局参数:
git config --global gpg.format ssh git config --global user.signingkey '你的密钥内容'
错误信息
git -c user.useConfigOnly=true commit --quiet --allow-empty-message --file - -S error: Load key "C:\Users\CoolUser\AppData\Local\Temp/.git_signing_key_tmpnwUfAT": invalid format? fatal: failed to write commit object
解决方法
1. 修正签名密钥配置
user.signingkey配置项需要填写私钥的文件路径,而非密钥文本内容。比如你的私钥存储在C:\Users\CoolUser\.ssh\id_ed25519,执行以下命令更新配置:
git config --global user.signingkey "C:\Users\CoolUser\.ssh\id_ed25519"
Windows路径可使用正斜杠简化:/c/Users/CoolUser/.ssh/id_ed25519
2. 调整SSH密钥格式
Git使用SSH签名时,默认的OpenSSH格式兼容性更好。重新生成不带-m PEM参数的密钥:
ssh-keygen -t ed25519 -C "你的邮箱"
重新上传新的公钥到GitHub,再更新user.signingkey的路径配置。
3. 统一VSCode的Git环境
VSCode可能调用系统默认Git而非Git Bash版本。打开VSCode设置,搜索Git: Path,将路径指向Git Bash的Git可执行文件(例如C:\Program Files\Git\bin\git.exe)。
4. 验证签名有效性
在Git Bash中执行测试命令,确认签名配置正常:
git commit -S -m "测试签名提交"
如果此命令能成功执行,再回到VSCode尝试提交操作。
内容的提问来源于stack exchange,提问作者user19366910
相关产品推荐
相关产品推荐

