Дженкинс - невозможно выполнить git клон из подчиненного node. Клавиши SSH

Я только что основал своего первого раба Дженкинса. Я запускаю сборку, и я сталкиваюсь с проблемами с SSH-ключами. Мастер-сервер Jenkins работает под пользователем jenkins. Я установил SSH-ключи, чтобы я мог SSH от ведущего к ведомому без пароля.

например. От мастера:

[email protected]:~$ ssh slave
Last login: Tue Apr 17 10:30:22 2012 from masterjenkins.com
$ whoami
jenkins

Итак, это доказывает, что ведомый node также работает под пользователем jenkins. (Я скопировал открытый ключ ssh из подчиненного jenkins @на удаленный сервер git). И я могу выпустить клон git вручную из подчиненного устройства, но когда я начинаю сборку с мастера, я получаю такие сообщения:

    ERROR: Error cloning remote repo 'origin' : Could not clone [email protected]:abc
hudson.plugins.git.GitException: Could not clone [email protected]:abc
Caused by: hudson.plugins.git.GitException: Error performing command: git clone --progress -o origin [email protected]:abc /var/lib/jenkins/workspace/abc_build
Command "git clone --progress -o origin [email protected]:abc /var/lib/jenkins/workspace/abc_build" returned status code 128: Initialized empty Git repository in /var/lib/jenkins/workspace/abc_build/.git/
Host key verification failed.
fatal: The remote end hung up unexpectedly
Caused by: hudson.plugins.git.GitException: Command "git clone --progress -o origin [email protected]:abc /var/lib/jenkins/workspace/abc_build" returned status code 128: Initialized empty Git repository in /var/lib/jenkins/workspace/abc_build/.git/
Host key verification failed.
fatal: The remote end hung up unexpectedly
Trying next repository
ERROR: Could not clone repository
FATAL: Could not clone

Итак, все еще намекает, что мои SSH-ключи настроены неправильно. Может ли кто-нибудь сказать мне, какие ключи мне нужно копировать где?

Большое спасибо, нс

Ответ 1

На основе URL-кода клонирования вы смешиваете два разных метода проверки подлинности. Вы пытаетесь использовать SSH в качестве пользователя git not jenkins. Обычно, когда вы размещаете свои собственные репозитории GIT и клонируете с помощью git @servername: reponame, вы используете что-то вроде гитолита.

Вы установили что-нибудь вроде гитолита?

Попробуйте ssh'ing, как это, вместо этого, как пользователь jenkins.

ssh [email protected] 

Затем посмотрим, что это получится. Это SSH больше в соответствии с [email protected]:abc, который вы делаете.

Если вы не настроили что-либо еще на своем сервере, измените свой клон-код на [email protected]:pathtorepo

Обновление

/home/git/.ssh/authorized_keys

Должна иметь запись вроде этого: (Это все в ОДНОЙ строке)

# gitolite start
command="/home/git/bin/gl-auth-command jenkins",no
-port-forwarding,no-X11-forwarding,no-agent-forwarding,no-pty ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAIEAt3+od84Gc9NBVrVb3MKjekHcBDwXXONnVYMNVpuRadoz/FPJTkOIxozKVPJDPI670O252giYpF59sOKqAJL0xEVUrhq8cDFuFwQsSAp0ed1kp/GRxx+pwytL58rcVJEHAy2DkD1z5HlNaZyvIxQyfLTnYfuL1Hx6Qe7dal7mXO0= keycomment
# gitolite end

Добавить разрешения репозитория для джинок в гитолите: (Возможно, вам придется клонировать на том же компьютере, на котором размещаются ваши репозитории, как пользователь гитолита)

git clone [email protected]:gitolite-admin 
cd gitolite-admin
cd conf
vi gitolite.conf

Теперь найдите запись для 'abc' или добавьте ее, если она не существует

repo    abc
  RW+            = jenkins

Теперь зафиксируйте и нажмите изменения

git commit -a -m "Adding user jenkins to repo abc"
git push

Теперь повторите ssh [email protected], чтобы узнать, сообщают ли вам gitolite о ваших новых разрешениях.