Есть отличная удаленная работа для php+codeception+jenkins+allure+docker спецов. 100% remote! Присоединиться к проекту

Jenkins и сборка в git


(HaraD) #1

Не нашел данной информации тут, так что скорее всего тема будет полезной.
Есть две машины в одной сетке - на одной стоит гит сервер (G), на другой jenkins (J). Задача - нужно создать job на сборку проекта.
User на J может соединяться через ssh к машине G и через sshkey (User@ubuntu) к гиту на G.
В Jenkins установлены плагины git и ssh.
JENKINS_USER = User, т.е. JENKINS_HOME (/var/lib/jenkins…log…cache) принадлежит User.

Работает:
Shell команда git clone в /home/User/git (через sshkey).
Shell навигация по директориям.

Не работает:
Git plugin - выдает ошибку при попытке проверке соединения к git@IP:/home/git/Test.git (ssh User + key)

    Failed to connect to repository : Command "git ls-remote -h git@IP:/home/git/Test.git HEAD" returned status code 128:
stdout: 
stderr: Permission denied, please try again. 
Permission denied, please try again. 
Permission denied (publickey,password). 
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

При этом git ls-remote -h git@IP:/home/git/Test.git в командной строке, выдает список веток проекта.

Нужны рекомендации по диагностике проблемы) Заранее спасибо.


(Sergey Korol) #2

Сгенеренный SSH ключ должен быть добавлен в:

  • репозиторий;
  • Jenkins job.

(HaraD) #3

это все есть, в jenkins он добавлен в настройках сборки


(Sergey Korol) #4

Значит неправильно добавлен, permission denied / cannot read from remote repository - говорит о том, что дженкинсу не хватает прав, чтобы вытащить исходники из репозитория.


(HaraD) #5

я там выбираю git - добавляю метод авторизации - Username and ssh key - присваиваю имя User и вставляю ключик в поле из файла id_rsa.pub. Где может быть подвох?


(HaraD) #7

Ключ /home/User/.ssh/id_rsa.pub через ssh keygen. При этом все git команды через shell в дженкинсе работают нормально, а плагин почему-то ругается. В сам jenkins я его копипастил.


(Sergey Korol) #8

Возможно у юниксов свои подводные камни. Сюда заглядывали?


(HaraD) #9

Ну вот у меня тоже подозрение что плагин пытается приконектиться как jenkins а не как User. С понедельника продолжу исследования. Спасибо)


(Zxcvbnm63976 ) #10

Похоже на то,что пароль установили когда генерировали ssh key, поэтому дженкинс не может забрать сорцы


(HaraD) #11

Неа, ssh key точно создавался с пустым паролем.


(Dmitry Cheremushkin) #12

Добавьте хост, имя пользователя и путь к приватному ключу в файл /var/lib/jenkins/.ssh/config в следующем виде:

Host SomeName
  Hostname IP
  User git
  IdentityFile ~/.ssh/privateKeyFile
  StrictHostKeyChecking no

(HaraD) #13

Спасибо за ответы, проблема решилась в итоге с помощью подключения через UsernamePassword.
Конфиг файл, ключу тоже не помог. При попытке соединения через UsernamePassword, ошибка была в том, что я пытался подключиться к user@/home/git/project.git вместо git@/home/git/project.git.