Попытка заставить jenkins и gitolite работать успешно - разрешение отклонено (publickey, password)

Я несколько дней пытался заставить мой gitolite работать с jenkins, чтобы я мог размещать репозитории с сервера и работать с Jenkins (они находятся на одном сервере).

У меня работает gitolite, но я думаю, что у меня проблемы с ssh. Я получил некоторую помощь в чате и добавил закрытый ключ в jenkins/.ssh.

У меня есть пользователь «git», на котором размещен gitolite, и у меня есть пользователь «gitolite» и пользователь «jenkins». Я могу клонировать репо, используя git clone [email protected]:Matrix

Но я не могу использовать его в Дженкинсе. Я получаю это, когда пытаюсь построить.

Checkout:workspace / /var/lib/jenkins/jobs/Matrix/workspace -
hudson.remoting.LocalChannel@dbb335
Using strategy: Default
Checkout:workspace / /var/lib/jenkins/jobs/Matrix/workspace -
hudson.remoting.LocalChannel@dbb335

Cloning the remote Git repository
Cloning repository origin
ERROR: Error cloning remote repo 'origin' : Could not clone [email protected]:Matrix
ERROR: Cause: Error performing command: git clone --progress -o origin [email protected]:Matrix /var/lib/jenkins/jobs/Matrix/workspace
Command "git clone --progress -o origin [email protected]:Matrix
/var/lib/jenkins/jobs/Matrix/workspace" returned status code 128: Cloning into        /var/lib/jenkins/jobs/Matrix/workspace...
Permission denied, please try again.
Permission denied, please try again.
Permission denied (publickey,password).
fatal: The remote end hung up unexpectedly

Trying next repository
ERROR: Could not clone repository
FATAL: Could not clone
hudson.plugins.git.GitException: Could not clone
at hudson.plugins.git.GitSCM$2.invoke(GitSCM.java:1042)
at hudson.plugins.git.GitSCM$2.invoke(GitSCM.java:968)
at hudson.FilePath.act(FilePath.java:758)
at hudson.FilePath.act(FilePath.java:740)
at hudson.plugins.git.GitSCM.checkout(GitSCM.java:968)
at hudson.model.AbstractProject.checkout(AbstractProject.java:1193)
at hudson.model.AbstractBuild$AbstractRunner.checkout(AbstractBuild.java:566)
at hudson.model.AbstractBuild$AbstractRunner.run(AbstractBuild.java:454)
at hudson.model.Run.run(Run.java:1376)
at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:46)
at hudson.model.ResourceController.execute(ResourceController.java:88)
at hudson.model.Executor.run(Executor.java:230)

Я вхожу на свой сервер и su - jenkins, затем набираю «ssh -v git@server», и я получаю это.

git@Server:~$ sudo su - jenkins
jenkins@Server:~$ ssh -v git@server
OpenSSH_5.8p1 Debian-1ubuntu3, OpenSSL 0.9.8o 01 Jun 2010
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: Applying options for *
debug1: Connecting to server [127.0.1.1] port 22.
debug1: Connection established.
debug1: identity file /var/lib/jenkins/.ssh/id_rsa type -1
debug1: identity file /var/lib/jenkins/.ssh/id_rsa-cert type -1
debug1: identity file /var/lib/jenkins/.ssh/id_dsa type -1
debug1: identity file /var/lib/jenkins/.ssh/id_dsa-cert type -1
debug1: identity file /var/lib/jenkins/.ssh/id_ecdsa type -1
debug1: identity file /var/lib/jenkins/.ssh/id_ecdsa-cert type -1
debug1: Remote protocol version 2.0, remote software version OpenSSH_5.8p1 Debian-1ubuntu3
debug1: match: OpenSSH_5.8p1 Debian-1ubuntu3 pat OpenSSH*
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_5.8p1 Debian-1ubuntu3
debug1: SSH2_MSG_KEXINIT sent
debug1: SSH2_MSG_KEXINIT received
debug1: kex: server->client aes128-ctr hmac-md5 none
debug1: kex: client->server aes128-ctr hmac-md5 none
debug1: sending SSH2_MSG_KEX_ECDH_INIT
debug1: expecting SSH2_MSG_KEX_ECDH_REPLY
debug1: Server host key: ECDSA f3:ab:a6:55:83:98:c5:4f:85:c6:70:be:2f:40:1f:65
debug1: Host 'server' is known and matches the ECDSA host key.
debug1: Found key in /var/lib/jenkins/.ssh/known_hosts:3
debug1: ssh_ecdsa_verify: signature correct
debug1: SSH2_MSG_NEWKEYS sent
debug1: expecting SSH2_MSG_NEWKEYS
debug1: SSH2_MSG_NEWKEYS received
debug1: Roaming not allowed by server
debug1: SSH2_MSG_SERVICE_REQUEST sent
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug1: Authentications that can continue: publickey,password
debug1: Next authentication method: publickey
debug1: Trying private key: /var/lib/jenkins/.ssh/id_rsa
debug1: read PEM private key done: type RSA
debug1: Authentications that can continue: publickey,password
debug1: Trying private key: /var/lib/jenkins/.ssh/id_dsa
debug1: Trying private key: /var/lib/jenkins/.ssh/id_ecdsa
debug1: Next authentication method: password
git@server's password: 

Он все еще запрашивает пароль... Кто-нибудь делал это? Заставить gitolite работать с Дженкинсом? Я очень благодарен за любую помощь и с радостью могу пожертвовать 10 баксов (карта Visa) за помощь в настройке!


person Jonathan    schedule 25.09.2011    source источник
comment
Согласно журналу SSH, ваш закрытый ключ id_rsa не принимается сервером. Убедитесь, что открытый ключ gitolite соответствует закрытому ключу, и что gitolite правильно обновил файл ~/git/.ssh/authorized_keys с помощью этого ключа.   -  person Christopher Orr    schedule 26.09.2011
comment
Спасибо за ответ! Я изучаю это прямо сейчас, но я не уверен, как решить эту проблему. В jenkins я не могу сделать сборку, но я не уверен, как я должен думать. если я получу свой спичечный коробок и попытаюсь получить доступ к своему серверу, я должен просто написать ssh e-ject.se? какие авторизации мне нужны? Мой iMac на сервер, мой macbook на сервер, jenkins на? а гитолите чтобы? у меня есть пользователь git, который является моим основным пользователем в ubuntu, я могу использовать git clone [email protected]:Matrix, но что мне нужно, чтобы jenkins принял и клонировал этот? очень благодарен за ответы, и я сдержу свое обещание о пожертвовании (требуется карта Visa) Joniz   -  person Jonathan    schedule 26.09.2011
comment
я брошу это и вместо этого попробую это руководство! nomachetejuggling.com/2011/07/31 / посмотрим, что получится.   -  person Jonathan    schedule 26.09.2011
comment
В настоящее время у вас не проблема с Дженкинсом, а общая проблема с SSH. Как только вы сможете выполнить ssh git@server со своей учетной записью пользователя jenkins и он автоматически войдет в систему без пароля, запуск сборки из Jenkins будет работать.   -  person Christopher Orr    schedule 26.09.2011
comment
Как сказал @Christopher, у вас проблема с ssh. Посмотрите oreilly.com/pub/h/66, чтобы узнать, как его настроить.   -  person Sagar    schedule 27.09.2011


Ответы (1)


SSH в поле Jenkins и создайте пару ключей SSH для пользователя Jenkins (при условии, что здесь jenkins):

local$ ssh jenkins-box
you@jenkins-box$ sudo su jenkins
jenkins@jenkins-box$ ssh-keygen
jenkins@jenkins-box$ cat $HOME/.ssh/id_rsa.pub

Скопируйте открытый ключ SSH, который вы видите на экране, и вставьте его в новый файл keydir/jenkins.pub в вашем локальном административном репозитории gitolite.

Добавьте следующие строки в conf/gitolite.conf, чтобы разрешить Jenkins клонировать и извлекать все репозитории:

repo    @all
        R       =   jenkins

Зафиксируйте и нажмите репозиторий администратора gitolite. Теперь Дженкинс должен работать правильно.

person akaihola    schedule 12.12.2011
comment
Обратите внимание, что в некоторых установках пользователь jenkins является не логином, а пользователем системы/демона. В этих случаях запуск sudo -u jenkins перед командами должен работать хорошо (в моем случае мне также пришлось вручную создавать /home/jenkins). Также обязательно запустите тестовый клон как jenkins: sudo -u jenkins clone git@server:repo ~/testclone - person Adam Rofer; 20.03.2012
comment
Исправление к моему предыдущему комментарию: sudo -u jenkins git clone git@server:repo ~/testclone - person Adam Rofer; 22.03.2012