Отказано в разрешении Jenkins scp для файла на сервере Jenkins

Я пытаюсь скопировать файл (созданный во время проверки SCM) с моего агента Jenkins на удаленный сервер. Я настроил SSH на удаленный сервер и могу к нему подключиться. Я получаю сообщение об ошибке «отказано в доступе» для файла на агенте Jenkins (а не на удаленном хосте).

Я проверил право собственности на файл, а также попытался изменить разрешения, но это не сработало.

Мой конвейер:

pipeline {
agent { label projectName }

stages {
    
    stage("SCM: Checkout"){
        steps{
            script{
                def gitURL = "https://xxx.xxxxx.net/bitbucket/scm/project/text_preprocessor.git"

                log.outputBanner("Checking out from the SCM")
                scmSteps.cloneRepository(gitURL, env.BRANCH_NAME, credentialsId)
                sh "ls -l"
                sh "chmod +x docker-compose.yml" //changing permissions
                sh "ls -l"
                
            }
        }
    }
    
    stage("Copy files") {
        steps {
            script{
                sshagent (credentials: [prodServerCredentialId]) {
                    sh "ssh -o StrictHostKeyChecking=no -l user0 host.xxx.net 'ls'"
                    sh '''
                    scp -o StrictHostKeyChecking=no docker-compose.yml [email protected]:/
                    '''
                    sh "ssh -o StrictHostKeyChecking=no -l user0 host.xxx.net 'ls'"
                }                   
            }  
        }
    }    
}  

Вывод сборки показывает следующее (некоторые части информации удалены для ясности):

[Pipeline] checkout
...
[Pipeline] sh
+ ls -l
total 20
drwxrwxr-x 2 user1 user1 4096 May  9 13:38 __pycache__
-rw-rw-r-- 1 user1 user1  385 May  9 13:38 docker-compose.prod.yml
-rw-rw-r-- 1 user1 user1  214 May  9 13:38 docker-compose.yml
drwxrwxr-x 3 user1 user1 4096 May  9 13:38 jenkinsfiles
drwxrwxr-x 4 user1 user1 4096 May  9 13:38 services
[Pipeline] sh
...
+ chmod +x docker-compose.yml
[Pipeline] sh
+ ls -l
total 20
drwxrwxr-x 2 user1 user1 4096 May  9 13:38 __pycache__
-rw-rw-r-- 1 user1 user1  385 May  9 13:38 docker-compose.prod.yml
-rwxrwxr-x 1 user1 user1  214 May  9 13:38 docker-compose.yml
drwxrwxr-x 3 user1 user1 4096 May  9 13:38 jenkinsfiles
drwxrwxr-x 4 user1 user1 4096 May  9 13:38 services
...


[Pipeline] sshagent
[ssh-agent] Using credentials user0 (Prod)
[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-FQIEn7xpUfkE/agent.608892
SSH_AGENT_PID=608894
Running ssh-add (command line suppressed)
...
[ssh-agent] Started.
[Pipeline] {
[Pipeline] sh
+ ssh -o StrictHostKeyChecking=no -l user0 host.xxx.net ls
bin
docker-compose
[Pipeline] sh
+ scp -o StrictHostKeyChecking=no docker-compose.yml [email protected]:/
scp: /docker-compose.yml: Permission denied
[Pipeline] }
Развертывание модели машинного обучения с помощью Flask - Angular в Kubernetes
Развертывание модели машинного обучения с помощью Flask - Angular в Kubernetes
Kubernetes - это портативная, расширяемая платформа с открытым исходным кодом для управления контейнерными рабочими нагрузками и сервисами, которая...
Как создать PHP Image с нуля
Как создать PHP Image с нуля
Сегодня мы создадим PHP Image from Scratch для того, чтобы легко развернуть базовые PHP-приложения. Пожалуйста, имейте в виду, что это разработка для...
1
0
20
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Оказывается, ошибка разрешения была на удаленном хосте. Проблема заключалась в том, что я пытался записать в место на удаленном хосте, на которое у меня не было разрешения на запись. С [email protected]:/ я пытался писать в корень удаленного хоста. Я создал временную папку в домашней папке моего пользователя на удаленном сервере (user0) и успешно скопировал туда файл, изменив:

scp -o StrictHostKeyChecking=no docker-compose.yml [email protected]:/

к

scp -o StrictHostKeyChecking=no docker-compose.yml [email protected]:/home/user0/temp

Другие вопросы по теме