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

如何在Jenkins任务中配置GPG密钥实现Git标签签名?

Jenkins同时使用SSH凭证与GPG签名的可行方案

方案1:将GPG私钥存储为Jenkins文件凭证,构建时加载

  • 先导出GPG私钥为ASCII格式:gpg --export-secret-keys --armor <你的密钥ID>
  • 将导出的密钥内容保存为文件,上传到Jenkins的「文件凭证」(类型选「Secret file」)
  • 在构建脚本中执行以下步骤:
    # 将文件凭证复制到构建节点的GNUPG目录
    cp "${GPG_PRIVATE_KEY_FILE}" ~/.gnupg/secring.gpg
    # 设置正确的权限,避免GPG报错
    chmod 600 ~/.gnupg/secring.gpg
    # 配置Git使用该密钥签名
    git config --global user.signingkey <你的密钥ID>
    git config --global commit.gpgsign true
    # 执行签名标签命令
    git tag -s <标签名> -m "标签说明"
    

方案2:用Credentials Binding插件加载GPG密文

  • 安装Jenkins的「Credentials Binding」插件
  • 将导出的GPG私钥ASCII内容直接存储为「Secret text」类型的凭证
  • 在任务的「绑定」设置中,把该密文绑定为环境变量(比如GPG_PRIVATE_KEY)
  • 构建脚本中写入密钥并配置Git:
    echo "${GPG_PRIVATE_KEY}" > ~/.gnupg/secring.gpg
    chmod 600 ~/.gnupg/secring.gpg
    git config --global user.signingkey <你的密钥ID>
    git tag -s <标签名> -m "标签说明"
    

方案3:单独配置Git的SSH密钥,释放Jenkins凭证位

  • 既然SSH密钥已占用Jenkins的凭证配置项,可以直接在构建脚本中指定Git使用的SSH密钥路径,无需依赖Jenkins的凭证配置:
    # 配置Git使用指定的SSH密钥
    git config core.sshCommand "ssh -i /path/to/ssh私钥文件"
    
  • 之后Jenkins的凭证配置就可以用来添加GPG相关凭证(文件或密文),两种凭证互不干扰

方案4:Pipeline任务直接管理多凭证

  • 如果是Pipeline任务,可通过credentials()方法分别调用SSH和GPG凭证:
    pipeline {
        agent any
        environment {
            // 分别获取SSH密钥文件和GPG密钥文件凭证
            SSH_KEY = credentials('你的SSH凭证ID')
            GPG_KEY = credentials('你的GPG凭证ID')
        }
        stages {
            stage('初始化配置') {
                steps {
                    sh '''
                        # 配置GPG密钥
                        cp "${GPG_KEY}" ~/.gnupg/secring.gpg
                        chmod 600 ~/.gnupg/secring.gpg
                        git config --global user.signingkey <你的密钥ID>
                        # 配置SSH密钥
                        git config core.sshCommand "ssh -i ${SSH_KEY}"
                    '''
                }
            }
            stage('创建并推送签名标签') {
                steps {
                    sh 'git tag -s v1.0.0 -m "正式发布v1.0.0"'
                    sh 'git push origin v1.0.0'
                }
            }
        }
    }
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 15:55:51