2011-06-12 12 views
11

Estoy tratando de configurar un servidor Debian con Apache2 como front end para Tomcat 7 ejecutando Jenkins, que funciona, pero quiero que Jenkins controle un repositorio Mercurial privado alojado en bitbucket y me gustaría usar SSH. (Lo he intentado con https simple, pero todavía no me gusta - hay una respuesta a la pregunta aquí en SO que recomienda el uso de ssh)¿Cómo configuro una clave ssh privada para que hudson/jenkins tenga acceso a bitbucket?

Implementé Jenkins utilizando la función de implementación en caliente de Tomcat al soltar el archivo .WAR de Jenkins/webapps. Puedo generar un par de claves públicas/privadas en el servidor y haber agregado mi clave pública a la cuenta de bitbucket, pero ¿cómo hago que Jenkins use mi clave privada para autenticarse cuando se accede a un repositorio privado en bitbucket?

He visto una publicación de blog que usa apt-get para instalar Hudson en Debian que crea un usuario de Hudson (para poder agregar una clave privada para este usuario) pero instalarlo a través de la implementación automática de tomcat no agrega un Usuario de Jenkins. Si no hay un usuario de Unix configurado para Jenkins, ¿puedo configurar uno que Jenkins usaría al autenticarse?

Respuesta

9

Si puede controlar la línea de comando mercurial desde Jenkins, puede pasar el comando --ssh para indicarle a mercurial qué comando ssh invocar. Algo como esto probablemente funcionaría:

hg --ssh '/usr/bin/ssh -i /path/to/private/key' ... 

Alternativamente, usted puede averiguar lo que el usuario Jenkins se está ejecutando como (que tiene que ser algunos usuario) y poner el archivo en el que el usuario de ~/.ssh incluso si eso es /root/.ssh/

+1

Se ejecuta como el usuario de tomcat, así que generé un par de claves ssh para eso y ahora se conecta. Gracias. – blank

+0

Intenté hacer esto para Windows, pero el trabajo de Hudson simplemente se para. Creo que está esperando un mensaje de contraseña porque al hacerlo manualmente debo ingresar la contraseña de la clave privada (TortoiseHG plinlk). ¿Algunas ideas? – javydreamercsw

+0

Ah, sí, querrás una clave privada sin contraseña para esta. Alternativamente puede usar pagent y mantenerlo en ejecución, pero la clave sin contraseña para un usuario automatizado es razonable, siempre y cuando no pueda usarla para obtener un shell completo. –

Cuestiones relacionadas