2011-09-25 21 views
6

He intentado durante días hacer que mi gitolite trabaje con jenkins para que pueda tener repos repostadas del servidor y trabajar con Jenkins (están en el mismo servidor).Intentando que jenkins y gitolite funcionen correctamente - Permiso denegado (clave pública, contraseña)

Tengo gitolite trabajando pero supongo que tengo problemas con ssh. Recibí ayuda en un chat y agregué una clave privada a jenkins/.ssh.

Tengo un usuario "git" que aloja la gitolita, y obtuve un usuario "gitolite" y un usuario "jenkins". Puedo clonar un repositorio usando git clone [email protected]: Matrix

Pero no puedo usarlo en jenkins. Lo entiendo cuando trato de construir.

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) 

inicio mi servidor y su - Jenkins, a continuación, escriba "ssh -v git @ servidor" me sale esto.

[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: 

Todavía pide la contraseña ... Cualquier persona que han hecho esto? Obteniendo gitolita trabajando con jenkins? ¡Estoy muy agradecido por cualquier ayuda y puedo donar 10 dólares (tarjeta de visa) para ayudarme a configurar esto!

+1

De acuerdo con el registro SSH, su clave privada 'id_rsa' no está siendo aceptada por el servidor. Compruebe que gitolite tenga la clave pública que coincida con la clave privada, y que gitolite ha actualizado correctamente el archivo ~/git/.ssh/authorized_keys con esa clave. –

+0

¡Gracias por la respuesta! Estoy investigando en este momento, pero no estoy seguro de cómo abordar esto. En jenkins no puedo construir, pero no estoy seguro de cómo se supone que debo pensar. si tengo mi Matchbook Pro e intento acceder a mi servidor, ¿me supongo que solo debo escribir ssh e-ject.se? ¿Qué auths necesito? Mi iMac al servidor, mi macbook al servidor, jenkins a? y gitolita a? tengo un usuario de git que es mi usuario principal en ubuntu, puedo usar git clone [email protected]: Matrix pero, ¿qué necesito para que jenkins acepte y clone este? muy agradecido por las respuestas y mantengo mi promesa de donación (solicitud de tarjeta de visa) Joniz – Jonathan

+0

¡renunciaré a este y probaré esta guía! http://www.nomachetejuggling.com/2011/07/31/ubuntu-tomcat-jenkins-git-ssh-togethe/ deja que así sea. – Jonathan

Respuesta

14

SSH en el cuadro de Jenkins y crear un par de claves SSH para el usuario Jenkins (suponiendo jenkins aquí):

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

copiar la clave pública SSH que se ve en la pantalla y lo pega en el nuevo archivo keydir/jenkins.pub dentro de su repositorio de administración gitolite local.

añadir las siguientes líneas a conf/gitolite.conf para dar permisos Jenkins para clonar y tirar todos los repositorios:

repo @all 
     R  = jenkins 

Commit y empuje el repositorio de administración gitolite. Jenkins ahora debería funcionar correctamente.

+0

Gracias, funcionó perfecto para mi problema –

+1

Tenga en cuenta que en algunas instalaciones el usuario 'jenkins' no es un usuario de inicio de sesión sino un usuario de sistema/daemon. En estos casos, ejecutar 'sudo -u jenkins' antes de los comandos debería funcionar bien (en mi caso, tuve que crear manualmente'/home/jenkins' también). También asegúrese de ejecutar un clon de prueba como jenkins: 'sudo -u jenkins clonar git @ server: repo ~/testclone' –

+0

Corrección a mi comentario anterior:' sudo -u jenkins git clonar git @ server: repo ~/testclone' –

Cuestiones relacionadas