jenkins не вдається підключитися до сховища git


11

Я не можу налаштувати URL-адресу сховища git таким чином, щоб Дженкінс мав доступ до нього.

у розділі "Проект> Налаштування> Управління вихідним кодом" я встановлюю URL-адресу сховища на "git @ store: repositories / testproject.git"

Я отримую цю помилку:

Failed to connect to repository : Command "/usr/bin/git -c core.askpass=true ls-remote -h git@store:repositories/testproject.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.

доступ із цією URL-адресою працює на оболонці:

jenkins@dilbert:~$ /usr/bin/git -c core.askpass=true ls-remote -h git@store:repositories/testproject.git
git@store's password: 
4fd35a4f528e2f2921a52cfd03918b7cbde3d253    refs/heads/master

Мене запитують пароль, і він працює.

Я пов’язав той самий пароль з обліковими записами в Дженкінсі з "git /", а також спробував "git @ store /". Жоден не працював.

Прошу зазначити, що мова йде не про github, а про локальне сховище git.

оновлення:

додавши паб-ключ від майстра дженкінса до раби збірки, допомогло налаштувати конфігурацію:

ssh-copy-id jenkins@dilbert

тепер збірки не вдається:

 > /usr/bin/git rev-parse --is-inside-work-tree # timeout=10
Fetching changes from the remote Git repository
 > /usr/bin/git config remote.origin.url git@store:repositories/testproject.git # timeout=10
Fetching upstream changes from git@store:repositories/testproject.git
 > /usr/bin/git --version # timeout=10
 > /usr/bin/git -c core.askpass=true fetch --tags --progress git@store:repositories/testproject.git +refs/heads/*:refs/remotes/origin/*
ERROR: Error fetching remote repo 'origin'
hudson.plugins.git.GitException: Failed to fetch from git@store:repositories/testproject.git
    at hudson.plugins.git.GitSCM.fetchFrom(GitSCM.java:735)
    at hudson.plugins.git.GitSCM.retrieveChanges(GitSCM.java:983)
    at hudson.plugins.git.GitSCM.checkout(GitSCM.java:1016)
    at hudson.scm.SCM.checkout(SCM.java:484)
    at hudson.model.AbstractProject.checkout(AbstractProject.java:1270)
    at hudson.model.AbstractBuild$AbstractBuildExecution.defaultCheckout(AbstractBuild.java:609)
    at jenkins.scm.SCMCheckoutStrategy.checkout(SCMCheckoutStrategy.java:86)
    at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:531)
    at hudson.model.Run.execute(Run.java:1751)
    at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:43)
    at hudson.model.ResourceController.execute(ResourceController.java:89)
    at hudson.model.Executor.run(Executor.java:240)
Caused by: hudson.plugins.git.GitException: Command "/usr/bin/git -c core.askpass=true fetch --tags --progress git@store:repositories/testproject.git +refs/heads/*:refs/remotes/origin/*" 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.

магазин - майстер джинкінів, ділберт - раб збірки. ssh від майстра до рабовласницьких робіт.

jenkins@store:~$ ssh dilbert uptime
 16:06:21 up 3 days, 18:53, 13 users,  load average: 0,31, 0,38, 0,50

будь-які ідеї, як налагодити це?

Відповіді:


5

аутентифікація працює через ssh. Ви додали відкритий ssh-ключ користувача jenkins користувачеві git на своєму git-сервері?

дайте мені знати, якщо вам потрібні інструкції, як налаштувати ssh-аутентифікацію, і я редагуватиму цю публікацію тут.

/ EDIT:

рада, що ти запустив це. Я подивився на офіційному веб-сайті jenkins докладний посібник щодо ssh частини конфігурації, але я не зміг знайти жодного.

так ось короткий огляд - повідомте мені, чи це вам потрібно.

  1. раб jenkins (будівельна машина) підключається до git-сервера (майстер jenkins)
  2. будівельна машина працює як користувач jenkins (наприклад, jenkins @ dilbert: ~ $)
  3. git-сервер працює як користувач git (наприклад, git @ store: ~ $)
  4. відкритий ключ jenkins @ dilbert потрібно розмістити в дозволених_кітях git @ store
  5. запустіть jenkins@dilbert:~/.ssh$ ssh-copy-id git@storeдля копіювання відкритого ключа jenkins @ dilbert ssh на сервер git

Ви можете, будь ласка, пояснити, до яких користувачів додати ssh-ключ, куди?
Йорг Бейер

користувач jenkins повинен зберігати свій ключ ключа в <jenkins home home dir> /. ssh / id_rsa.pub, його потрібно додати до <git user home dir> /. ssh /
avtor_keys

виконуючи "jenkins @ store: ~ / .ssh $ ssh-copy-id git @ store", отримайте jenkins прийняти конфігурацію (це поліпшення), але побудова на віддаленому рабі dnkins не вдається. будь-яка ідея?
Йорг Бейер

добре читати. на жаль, мій досвід роботи з git майже закінчується там ... але я пам’ятаю подібну проблему на роботі. я можу помилитися зараз, але вам доведеться працювати користувачем (наприклад, Joerg Beyer) на git-платформі, правда? перевірте дозвіл там (ви можете змінити дозволи користувачів у веб-інтерфейсі для кожної групи, до якої вони належать). спробуйте встановити його розробнику для тестування / EDIT: ви писали віддалений раб jenkins - якщо він використовує іншу пару ключів, вам потрібно ще раз додати відкритий ключ до санкціонованих_кітів git
kindaleek

не впевнений. Я оновив питання. Який ключ ssh мені потрібно куди додати?
Йорг Бейер
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.