2011-09-25 9 views
6

Ho cercato per giorni di far funzionare la mia gitolite con jenkins in modo da poter disporre di repository dal server e lavorare con Jenkins (sono sul stesso sever).Cercando di ottenere jenkins e gitolite per funzionare correttamente - Autorizzazione negata (chiave pubblica, password)

Ho la gitolite in funzione ma suppongo di avere problemi con ssh. Ho avuto aiuto in una chat e ho aggiunto la chiave privata a jenkins/.ssh.

Ho un utente "git" che ospita la gitolite e ho un utente "gitolite" e un utente "jenkins". Posso clonare un repository usando git clone [email protected]: Matrix

Ma non posso usarlo in jenkins. Ho capito quando provo a costruire.

Checkout:workspace//var/lib/jenkins/jobs/Matrix/workspace - 
[email protected] 
Using strategy: Default 
Checkout:workspace//var/lib/jenkins/jobs/Matrix/workspace - 
[email protected] 

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) 

faccio il login al mio server e su - Jenkins, quindi digitare "ssh -v git @ server" ottengo questo.

[email protected]:~$ sudo su - jenkins 
[email protected]:~$ ssh -v [email protected] 
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 
[email protected]'s password: 

Si chiede ancora la password ... Chiunque che hanno fatto questo? Ottenere gitolite lavorando con jenkins? Sono molto grato per qualsiasi aiuto e posso donare volentieri 10 dollari (visa card) per avermi aiutato a sistemarlo!

+1

In base al log SSH, la chiave privata 'id_rsa' non viene accettata dal server. Verifica che la gitolite abbia la chiave pubblica che corrisponde alla chiave privata e che gitolite abbia aggiornato correttamente il file ~/git/.ssh/authorized_keys con quella chiave. –

+0

Grazie per la risposta! Sto guardando in questo momento, ma non sono sicuro di come affrontare questo. In jenkins non posso costruire una build, ma non sono sicuro di come suppongo di pensare. se ho la mia scatola di fiammiferi pro e provo ad accedere al mio server, suppongo di scrivere solo ssh e-ject.se? quali sono le autorizzazioni necessarie? Il mio iMac al server, il mio macbook al server, Jenkins a? e la gitolite? ho un utente git che è il mio utente principale su ubuntu posso usare git clone [email protected]: Matrix ma che cosa ho bisogno per jenkins per accettare e clonare questo? molto grato per le risposte e mantengo la mia promessa di donazione (visa card req) Joniz – Jonathan

+0

lascerò questo e provo invece questa guida! http://www.nomachetejuggling.com/2011/07/31/ubuntu-tomcat-jenkins-git-ssh-togethe/ lascia vedere come va. – Jonathan

risposta

14

SSH nella casella di Jenkins e creare una coppia di chiavi SSH per l'utente Jenkins (supponendo jenkins qui):

local$ ssh jenkins-box 
[email protected]$ sudo su jenkins 
[email protected]$ ssh-keygen 
[email protected]$ cat $HOME/.ssh/id_rsa.pub 

copiare la chiave pubblica SSH che si vede sullo schermo e incollarlo nel nuovo file keydir/jenkins.pub all'interno del tuo repository admin gitolite locale.

Aggiungere le seguenti righe per conf/gitolite.conf per concedere le autorizzazioni Jenkins per clonare e tirare tutti i repository:

repo @all 
     R  = jenkins 

Commit e spingere il repository di amministrazione gitolite. Jenkins ora dovrebbe funzionare correttamente.

+0

Grazie, ha funzionato perfettamente per il mio problema –

+1

Si noti che in alcune installazioni l'utente di 'jenkins' non è un login ma un utente di sistema/demone. In questi casi si esegue 'sudo -u jenkins' prima che i comandi funzionino bene (nel mio caso ho dovuto creare manualmente anche/home/jenkins'). Assicurati anche di eseguire un clone di prova come jenkins: 'sudo -u jenkins clone git @ server: repo ~/testclone' –

+0

Correzione al mio commento precedente:' sudo -u jenkins git clone git @ server: repo ~/testclone' –

Problemi correlati