Git提交报错:Load key无效格式,临时密钥路径存疑求助
解决Git提交时临时路径密钥无效的问题
问题分析
报错指向临时路径的密钥文件,大概率是Git提交签名配置混乱(比如混用GPG与SSH签名规则),导致Git自动生成的临时签名密钥格式不兼容;也可能是系统临时目录权限异常,使得临时密钥文件损坏。
解决方案
1. 检查并修正Git签名配置
先查看当前Git的签名相关配置:
git config --list | grep -E 'gpg|signing'
如果要使用SSH密钥签名提交,确保配置如下:
# 开启提交签名 git config --global commit.gpgsign true # 指定SSH公钥作为签名密钥 git config --global user.signingkey ~/.ssh/id_rsa.pub # 设置签名格式为SSH git config --global gpg.format ssh # 指定SSH程序路径(根据系统调整,macOS默认是/usr/bin/ssh) git config --global gpg.ssh.program /usr/bin/ssh
如果之前误配置了GPG签名,先清理相关配置:
git config --global --unset gpg.program git config --global --unset user.signingkey
2. 排查环境变量干扰
检查是否有异常环境变量影响Git签名:
env | grep -E 'GIT|GPG'
如果看到GIT_SIGNING_KEY等指向临时路径的变量,执行unset清除:
unset GIT_SIGNING_KEY
3. 验证SSH密钥有效性
确认本地SSH密钥格式正常:
ssh-keygen -l -f ~/.ssh/id_rsa
正常情况下会输出密钥的长度、哈希等信息;如果报错,说明密钥本身有问题,重新生成:
ssh-keygen -t rsa -b 4096 -C "your-email@example.com"
同时测试密钥能否连接Git服务器(替换为你的服务器地址):
ssh -T git@github.com
4. 检查临时目录权限
macOS下临时目录/var/folders/...权限异常可能导致临时文件生成失败,执行以下命令修复:
sudo chmod 1777 /var/folders
额外说明
如果以上步骤都无效,尝试重新初始化本地仓库(注意备份代码):
mv .git .git.bak git init git remote add origin <你的仓库地址> git fetch git reset --hard origin/main
内容的提问来源于stack exchange,提问作者Jérôme Guérin
相关产品推荐
相关产品推荐

