Jenkins管道在ssh期间挂起

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

我正在尝试执行从詹金斯管道到其他服务器的远程命令。我在两台计算机上都创建了用户pf-devops。

[在jenkins服务器上,我在/home/pf-devops/.ssh中创建了ssh密钥id_rsa和id_rsa.pub。

然后在另一台服务器上,创建相同的用户,并将其公共密钥添加到/home/pf-devops/.ssh/authorized_keys。

然后,我在Jenkins凭证上添加了他的私钥,如下所示:

enter image description here

然后在我项目的Jenkinsfile上,我有以下内容:

def DOCKER_COMPOSE_FILE = 'docker-compose.yml'
def UUID = UUID.randomUUID().toString()
pipeline {
agent any

stages {
    stage('Deploy to danielserrao') {
        when {
            branch 'danielserrao'
        }
        steps {
            script {
                DOCKER_COMPOSE_FILE = 'docker-compose-dev-databases.yml'
                echo "This should be done only on danielserrao with docker compose file ${DOCKER_COMPOSE_FILE}"
                sshagent(['821f7495-e873-4a4b-97eb-f00433d078d9']) {
                    sh "ssh XXX.XXX.X.153 'touch /tmp/${UUID}'"
                }
            }
        }
    }
...

但是执行管道时,我得到以下信息:

This should be done only on danielserrao with docker compose file docker-compose-dev- 
databases.yml
[Pipeline] sshagent
[ssh-agent] Using credentials pf-devops (pf-devops private ssh key)
[ssh-agent] Looking for ssh-agent implementation...
[ssh-agent]   Exec ssh-agent (binary ssh-agent on a remote machine)
$ ssh-agent
SSH_AUTH_SOCK=/tmp/ssh-GfKzb8sTTsPq/agent.2021
SSH_AGENT_PID=2023
Running ssh-add (command line suppressed)
Identity added: /var/jenkins_home/workspace/tion-deploy- 
penguin_danielserrao@tmp/private_key_8009694440488072457.key 
(/var/jenkins_home/workspace/tion-deploy- 
penguin_danielserrao@tmp/private_key_8009694440488072457.key)
[ssh-agent] Started.
[Pipeline] {
[Pipeline] sh
+ ssh XXX.XXX.X.153 touch /tmp/11c8ef5c-4e71-4f38-948a-825af129ce9d
...

然后它永远挂起。如果我尝试使用pf-devops用户从jenkins服务器执行相同的ssh命令,则该命令将起作用并在XXX.XXX.X.153上创建临时文件,因此用户SSH私钥似乎是正确的。

我还尝试了使用https://www.reddit.com/r/docker/comments/b8lmc4/jenkins_pipeline_not_correctly_using_sshagent/中指定的带有凭据的方法的另一种解决方案,但结果相同。

关于可能发生的事情或如何解决此问题的任何想法?

Jenkins版本:2.20.41

两个机器的操作系统:Ubuntu 18.04.3 LTS

感谢您的帮助。

jenkins ssh jenkins-pipeline ubuntu-18.04 ssh-keys
1个回答
© www.soinside.com 2019 - 2024. All rights reserved.