Jenkins 身份文件无法访问

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

我对 Jenkins 和 DevOps 总体来说是新手。我正在尝试学习将 war 文件部署到在亚马逊 EC2 实例上运行的 Tomcat 9.xx 上。 Tomcat 可以通过浏览器访问

我有以下 Jenkinsfile:

pipeline {
    agent any

    parameters {
         string(name: 'tomcat_dev', defaultValue: 'VALID_IP_HIDDEN', description: 'Staging Server')
    }

    triggers {
         pollSCM('* * * * *')
     }

stages{
        stage('Build'){
            steps {
                sh 'mvn clean package'
            }
            post {
                success {
                    echo 'Now Archiving...'
                    archiveArtifacts artifacts: '**/target/*.war'
                }
            }
        }

        stage ('Deployments'){
            parallel{
                stage ('Deploy to Staging'){
                    steps {
                        sh "scp -i /home/user/.ssh/tomcatdeployment.pem **/target/*.war ec2-user@${params.tomcat_dev}:/opt/tomcat/apache-tomcat-9.0.83/webapps"
                    }
                }
            }
        }
    }
}

我可以使用上述身份文件连接到我的 ec2 实例,但是当我运行 Jenkins Pipeliine 时,我不断收到此错误:

scp -i /home/user/.ssh/tomcatdeployment.pem webapp/target/webapp.war ec2-user@IP_VALUE_HIDDEN:/opt/tomcat/apache-tomcat-9.0.83/webapps 警告:身份文件 /home/user/.ssh/tomcatdeployment.pem 无法访问:权限被拒绝。 主机密钥验证失败。

我尝试将 Jenkins 添加到 root 用户列表,并使其能够使用 sudo 而无需密码 - 如何在 Jenkins 中以 root 身份运行脚本?

但我仍然遇到同样的错误。有人可以帮忙或提供一些指导吗?

jenkins tomcat permissions devops ssh-keys
1个回答
0
投票

您可以设置正确的凭据以通过 Jenkins 服务器进行身份验证。 主机密钥验证问题:

ssh -i /home/user/.ssh/tomcatdeployment.pem ec2-user@IP_VALUE_HIDDEN

© www.soinside.com 2019 - 2024. All rights reserved.