使用SSH签名密钥执行Git Commit报错,求Linux Mint下解决方案
解决Git SSH签名提交报错的问题
问题根源
你遇到的error: unsupported value for gpg.format: ssh错误,是因为当前安装的Git版本低于2.34.0——Git从2.34.0版本才开始支持用SSH密钥签名提交/标签,旧版本不认gpg.format = ssh这个配置项。
解决步骤
- 检查Git版本
先确认当前Git版本:
git --version
如果输出的版本号小于2.34.0,必须升级Git。
- 在Linux Mint上升级Git
Linux Mint默认软件源里的Git版本通常偏旧,用官方PPA升级:
- 添加Git官方PPA仓库:
sudo add-apt-repository ppa:git-core/ppa
- 更新软件源索引:
sudo apt update
- 升级Git:
sudo apt install git
升级完成后再用git --version确认版本已达标。
- 修正Git配置
打开~/.gitconfig文件,调整配置:
- 删除
[gpg]段里的program = gpg(SSH签名不需要gpg程序) - 新增
[gpg "ssh"]配置段指定签名工具(可选,但能避免潜在问题)
最终配置示例:
[user] email = email@gmail.com name = username signingkey = /home/user/.ssh/id_ed25519.pub [commit] gpgsign = true [gpg] format = ssh [gpg "ssh"] program = ssh-keygen
如果不需要S/MIME签名,[gpg "x509"]那段可以直接删掉。
- 验证SSH密钥权限
确保SSH密钥文件权限符合要求,否则签名会失败:
chmod 700 ~/.ssh chmod 600 ~/.ssh/id_ed25519 chmod 644 ~/.ssh/id_ed25519.pub
- 测试提交
重新尝试提交:
git commit -m "test ssh signature"
提交成功后,用git log --show-signature可以看到签名信息。
内容的提问来源于stack exchange,提问作者Alwin Aji
相关产品推荐
相关产品推荐

