Дженкинс - невозможно выполнить 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 о ваших новых разрешениях.