2012-09-26 25 views
8

Fui a través de muchas preguntas, pero parece que nada soluciona mi problema. O para ser más precisos, no estoy seguro de si estoy haciendo todo correctamente. Así que aquí está:Configuración de jenkins en centos: problemas con ssh keys y git

Han instalado centos 6.3 OS. Luego siguió la siguiente guía para instalar Jenkins:

https://wiki.jenkins-ci.org/display/JENKINS/Installing+Jenkins+on+RedHat+distributions

Jenkins funciona bien. Ahora estoy intentando configurar un trabajo de compilación simple, que requiere clonar un repositorio de git. (He instalado el plugin GIT)

En URL del repositorio que escriba lo siguiente: git @ gitserver: myrepo.git Por supuesto me da un error: stderr: Anfitrión comprobación de las claves fracasó.

bien, necesito generar claves ssh y todo estará bien. Así que haga lo siguiente:

su - jenkins 

pero por desgracia no cambiar a Jenkins usuario.

cat/etc/passwd

muestra lo siguiente:

jenkins:x:496:492:Jenkins Continuous Build Server:/var/lib/jenkins:/bin/false 

por lo que parece que no tiene un directorio personal habitual.

La pregunta es ¿cómo puedo generar claves para jenkins o si los pasos anteriores no son la forma correcta de hacerlo, ¿cómo lo soluciono?

¡Muchas gracias!

actualización: que genera claves (como usuario root) y los colocó en Jenkins casa e hizo exactamente y copiar la clave pública al servidor de Git. Todavía no ayudó.

Cuando miro el registro de la construcción que dice:

Started by user anonymous 
Building in workspace /var/lib/jenkins/jobs/myrepo/workspace 

este usuario anónimo es este otro usuario creado por Jenkins, o es todavía Jenkins que ejecuta los comandos?

+0

Tengo el mismo problema :(. – Nilesh

Respuesta

2

Creo que el directorio .ssh debe vivir en/var/lib/jenkins.

Obras para mí

+0

de hecho está allí. Pero estaba vacío. Lo que hice Genere claves en ese directorio. Tomé la clave pública y anexé al archivo authorized_keys en el servidor de git. no funciona ... – Tadzys

6

Estoy asumiendo que usted tiene acceso a la raíz si fueron capaces de instalar el RPM Jenkins. ¿Estaba respondiendo al usuario de jenkins mientras estaba conectado como root? Si no es así, debe hacerlo o use

sudo su - jenkins 

si su usuario tiene acceso sudo.

A continuación, ejecute

ssh-keygen -t rsa 

para generar un par de claves RSA para el usuario Jenkins, y se puede cargar la clave pública al servidor de Git. La clave se generará como /var/lib/jenkins/.ssh.id_ra.pub si toma los valores predeterminados.

+1

El problema es que no cambia a la casa de jenkins. Todavía se queda en la casa de mis usuarios. Pero igual generé las claves como usuario root en la casa de jenkins e hice exactamente lo que me has dicho, pero el error aún persiste. – Tadzys

+0

Hmm, malformate mi comando sudo anterior, simplemente lo corregí. –

+5

¿Es correcto que el propietario del archivo de claves sea root? Probablemente el usuario de jenkins no tiene shell de inicio de sesión y esa puede ser la causa./etc/passwd' archivo para una entrada como 'jenkins: x: 999: 1001 ::/var/lib/jenkins:/sbin/nologin' y cambiar el'/sbin/nologin' con '/ bin/bas h' temporalmente para cambiar al usuario jenkins. –

5

1 Jenkins cambio Inicio de sesión estableciendo

vi/etc/passwd

actualización/bin/false a/bin/bash

2 do - Jenkins

Jekins usuario doméstico sería/var/lib/Jenkins

3 ssh-keygen

.ssh cat/id_rsa.pub

copia esta tecla para Bitbucket

4 [email protected] ssh

esto va a establecer la clave ssh bitbucket en .ssh/known_hosts

Ahora debería poder acceder a

2

Estaba teniendo problemas para cambiar al usuario de jenkins. Necesitaba crear al usuario correctamente en el sistema para poder iniciar sesión en él. Me encontré con este comando para ayudarme a crear el usuario Jenkins en el sistema:

su -s /bin/bash jenkins 
2

1) En primer lugar hacer Jenkins como usuario real editando/etc/passwd Cambio

/bin/false to /bin/bash

2) Acceso a Jenkins usuario, ahora directorio principal Jenkins será/var/lib/Jenkins

su - jenkins 

3) Generar claves SSH de nuevo (teclas serán creados en /var/lib/jenkins/.ssh)

ssh-keygen -t rsa 

4) copiar y pegar id_rsa.pub clave en authorized_keys de su git presentar

5) Sin embargo, si no va a funcionar, probablemente usted tiene que comprobar los permisos de su directorio .ssh y contenidos

chmod 700 ~/.ssh && chmod 600 ~/.ssh/* 
1

con el fin de iniciar la sesión como "Jenkins" del usuario, tal vez usted podría intentar esto:

sudo -s -H -u jenkins 

Y tratar de invocar:

bash-4.1$ whoami 
jenkins 

Espero que ayude.

2

jenkins es una cuenta de servicio, no tiene un depósito por diseño. En general, se acepta que las cuentas de servicio no deberían poder iniciar sesión de forma interactiva.

No respondí este inicialmente, ya que es un duplicado de una pregunta que se ha movido a un error del servidor. Debería haber respondido en lugar de unirme a la respuesta en un comentario.

si por alguna razón se quiere iniciar la sesión como Jenkins, puede hacerlo con: sudo su -s/bin/bash Jenkins

0

Lo que hice: sudo -u Jenkins ssh-keygen. Funciona hasta ahora