首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在Jenkinsfile中使用withCredentials时出错

在Jenkinsfile中使用withCredentials时出错
EN

Stack Overflow用户
提问于 2019-11-26 07:42:28
回答 1查看 1.2K关注 0票数 0

在我的Jenkins管道的其中一个阶段,我做了

代码语言:javascript
运行
复制
    stage('SSH into the Server') {
        steps {
            withCredentials([sshUserPrivateKey(
                credentialsId: '<ID>',
                keyFileVariable: 'KEY_FILE')]) {
                sh '''
                cat ${KEY_FILE} > ./key_key.key
                eval $(ssh-agent -s)
                chmod 600 ./key_key.key
                ssh-add ./key_key.key
                ssh-add -L
                ssh <username>@<server> docker ps
                '''
            }
        }
    }

只是简单地通过ssh进入服务器并检查docker ps

credentialId来自我的Jenkins服务器中的Global Credentials

但是,在运行此程序时,

我得到了

代码语言:javascript
运行
复制
+ cat ****
++ ssh-agent -s
+ eval 'SSH_AUTH_SOCK=/tmp/ssh-.../agent.57271;' export 'SSH_AUTH_SOCK;' 'SSH_AGENT_PID=57272;' export 'SSH_AGENT_PID;' echo Agent pid '57272;'
++ SSH_AUTH_SOCK=/tmp/ssh-.../agent.57271
++ export SSH_AUTH_SOCK
++ SSH_AGENT_PID=57272
++ export SSH_AGENT_PID
++ echo Agent pid 57272
Agent pid 57272
+ chmod 600 ./key_key.key
+ ssh-add ./key_key.key

然后就失败了,没有更多的消息。

我做错了吗?

EN

回答 1

Stack Overflow用户

发布于 2019-11-26 16:26:48

基于你的意图,我认为这是一种非常复杂的方式。我强烈推荐使用SSH代理插件。

https://jenkins.io/doc/pipeline/steps/ssh-agent/

你可以一步到位。

代码语言:javascript
运行
复制
  sshagent (credentials: ['<ID>']) {
    sh 'ssh <username>@<server> docker ps'
  }

使用与您上面提到的全局凭证相同的UserPrivateKey的credentialsId。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59041713

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档