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

Debian配置Git提交签名遇gpg.format: ssh不支持错误求助

解决Git提交签名报错:unsupported value for gpg.format: ssh

问题根源

你碰到的错误核心原因是Debian系统默认安装的Git版本过低。SSH格式的提交签名是Git 2.34版本才正式引入的功能,旧版本Git无法识别gpg.format=ssh这个配置项;而你Windows主机上的Git版本大概率是较新的,所以能正常运行该配置。

先确认当前Git版本:

git --version

如果输出的版本号低于2.34.0,就可以确定是版本兼容问题。


解决方案一:升级Git到2.34+版本

Debian稳定版的软件源里Git版本通常偏旧,需要借助backports源安装新版本:

  1. 编辑backports源配置文件(以Debian 11 bullseye为例):

    sudo nano /etc/apt/sources.list.d/backports.list
    

    添加以下内容:

    deb http://deb.debian.org/debian bullseye-backports main
    

    若使用Debian 12 bookworm,将bullseye-backports替换为bookworm-backports即可。

  2. 更新软件源并安装新版Git:

    sudo apt update
    sudo apt -t bullseye-backports install git
    
  3. 验证升级结果:

    git --version
    

    确认版本≥2.34.0后,重新执行git commit就不会报错,之前的SSH签名配置可继续使用。


解决方案二:改用GPG签名(不升级Git)

如果暂时不想升级Git,可切换回传统的GPG签名方式:

  1. 先移除旧的SSH签名配置:

    git config --global --unset gpg.format
    git config --global --unset user.signingkey
    
  2. 生成GPG密钥:

    gpg --full-generate-key
    

    按提示选择密钥类型(推荐RSA,密钥长度选4096)、有效期、个人信息,完成密钥生成。

  3. 获取GPG密钥ID:

    gpg --list-secret-keys --keyid-format=long
    

    输出中类似sec rsa4096/ABCDEFG123456789的字符串,ABCDEFG123456789就是你的密钥ID。

  4. 配置Git使用该密钥:

    git config --global user.signingkey ABCDEFG123456789
    
  5. (可选)把GPG公钥上传到GitHub:

    gpg --armor --export ABCDEFG123456789
    

    复制输出的公钥内容,到GitHub的「Settings → SSH and GPG keys」页面添加GPG密钥。

最后测试签名提交:

git commit -S -m "test signed commit"

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 06:45:34