tag - ssh key git
Administrar claves SSH dentro de Jenkins para Git (4)
Estoy tratando de poner en marcha a Jenkins con un repositorio alojado en GitHub (usando el plugin Jenkins Git). El repositorio tiene múltiples submódulos de git, por lo que no estoy seguro de querer probar y administrar varias claves de implementación.
Mi cuenta de usuario personal de GitHub es colaboradora de cada uno de los proyectos que deseo /var/lib/jenkins/.ssh
con Jenkins, así que he generado una clave SSH dentro de /var/lib/jenkins/.ssh
y la /var/lib/jenkins/.ssh
agregado a mi cuenta personal de GitHub.
Sin embargo, cuando intento agregar el URL del repositorio a la configuración de mi proyecto de Jenkins, obtengo:
Failed to connect to repository : Command "git ls-remote -h [email protected]:***/***.git HEAD" returned status code 128:
stdout:
stderr: Host key verification failed.
fatal: The remote end hung up unexpectedly
Del mismo modo, cuando programo una compilación obtengo:
stderr: Host key verification failed.
fatal: The remote end hung up unexpectedly
También intenté configurar un archivo de configuración SSH como se describe here , pero fue en vano.
¿Alguien puede arrojar algo de luz? Gracias
EDITAR
Debo añadir que estoy ejecutando CentOS 5.8
¿Has intentado iniciar sesión como usuario de jenkins?
Prueba esto:
sudo -i -u jenkins #For RedHat you might have to do ''su'' instead.
git clone [email protected]:your/repo.git
Muchas veces se produce un error si el host no se ha agregado o autorizado (por lo tanto, siempre inicio sesión manualmente como hudson / jenkins para la primera conexión a github / bitbucket) pero ese enlace que supuestamente incluye correcciones.
Si lo anterior no funciona, intente volver a copiar la clave. Asegúrate de que sea la clave del pub (es decir, id_rsa.pub). Tal vez te perdiste algunos personajes?
Esto funciona para mí si tiene config y el archivo de clave privada en /Jenkins/.ssh/ necesita chown (cambiar propietario) para estos 2 archivos y luego reinicie jenkins para que la instancia de jenkins lea estos 2 archivos.
Parece que el host github.com
que jenkins intenta conectarse no aparece en la lista de $HOME/.ssh/known_hosts
del usuario de Jenkins. Jenkins se ejecuta en la mayoría de las distribuciones como el usuario jenkins
y, por lo tanto, tiene su propio directorio .ssh
para almacenar la lista de claves públicas y known_hosts
.
La solución más fácil que se me ocurre para solucionar este problema es:
# Login as the jenkins user and specify shell explicity,
# since the default shell is /bin/false for most
# jenkins installations.
sudo su jenkins -s /bin/bash
cd SOME_TMP_DIR
# git clone YOUR_GITHUB_URL
# Allow adding the SSH host key to your known_hosts
# Exit from su
exit
Según este article , puedes intentar seguir el siguiente comando:
ssh-add -l
Si su clave no está en la lista, entonces
ssh-add /var/lib/jenkins/.ssh/id_rsa_project