ssh-add使Jenkins管道作业失败

问题描述 投票:0回答:1

詹金斯(2.162),更新了模块。我需要为货物构建添加私有github依赖项。因此,我需要在cargo build之前将SSH密钥存储到Jenkins容器中。

我做了:

stage('Build') {
    steps{
        script {
            dir('api'){
                withCredentials([string(credentialsId: 'GitKeyText', variable: 'ID_RSA')]) {
                    sh '''
                        set +x
                        eval `ssh-agent -s`
                        mkdir ~/.ssh
                        echo ${ID_RSA} >~/.ssh/id_rsa
                        chmod go-r ~/.ssh/id_rsa
                        ssh-add
                        cargo build
                    '''
                }
            }
            input message: "wait"
        }
    }
}

所有看起来都很好,这个命令序列在docker容器内手动完成。但是,詹金斯的工作在ssh-add失败,没有任何错误信息。只是在詹金斯控制台日志结束时的ERROR: script returned exit code 1

add01:我在代码中添加了echo注释,并将set +x更改为set -x

没有来自ssh-add的输出(控制台输出)

.....
+ echo before ssh-add
before ssh-add
+ ssh-add
[Pipeline] }
[Pipeline] // withCredentials
[Pipeline] }
[Pipeline] // dir
[Pipeline] }
[Pipeline] // script
Post stage
.....
docker ssh jenkins-pipeline jenkins-plugins ssh-keys
1个回答
0
投票

我用过Jenkins SSH Agent Plugin。一切按预期工作。

script {
    dir('contract_api'){
        sshagent(['GitSSHcred']) {
            sh 'cargo build'
        }
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.