una tag repositorio remoto que nuestro entre eliminar cómo crear creamos conexión cambiar git github ssh jenkins

tag - que es un repositorio git



Jenkins: no se pudo conectar al repositorio (11)

Estoy tratando de conectar jenkins en un repositorio github.

Cuando especifico la URL de Repo jenkins devuelve el siguiente mensaje de error:

Error al conectarse al repositorio: Comando "git ls-remote -h [email protected]: adolfosrs / jenkins-test.git HEAD" devolvió el código de estado 128: stdout: stderr: Error al verificar la clave del host. fatal: no se pudo leer desde el repositorio remoto. Por favor, asegúrese de tener los derechos de acceso correctos y existe el repositorio.

Al usar HTTPS: // Url jenkins devuelve:

Error al conectarse al repositorio: no se pudo conectar a https://github.com/adolfosrs/jenkins-test.git (estado = 407)

Pude clonar exitosamente el repositorio en la misma máquina donde está corriendo jenkins y también ejecuto el git ls-remote -h [email protected]:adolfosrs/jenkins-test.git HEAD . Así que tengo el SSH correcto en github.


Asegúrese de que la clave de host RSA y la IP del servidor bitbucket se agreguen al archivo ''hosts conocidos''. Los contenidos deben verse como

bitbucket.org,xx.xx.xx.xx ssh-rsa host_key

Recuerde cambiar la propiedad de Jenkins por todos los archivos en /var/lib/jenkins/.ssh/


El problema fue que de alguna manera creé los archivos ssh con el usuario raíz. Entonces, el propietario de los archivos era root.

La solución fue simplemente cambiar la propiedad del usuario de jenkins.

chown jenkins id_rsa.pub chown jenkins id_rsa


En Ubuntu, colocó sus archivos id_rsa e id_rsa.pub en /var/lib/jenkins/.ssh

Haz que Jenkins los posea sudo chown -R jenkins /var/lib/jenkins/.ssh/

Asegúrese de que la clave Jenkins se agrega como clave de implementación con acceso RW en GitHub (o similar) - use la clave id_rsa.pub para esto.

Ahora todo debería coincidir con el complemento SCM Sync.


En mi caso, edité el archivo known_hosts con usuario root. Así que cambió la propiedad del archivo a root y el usuario de jenkins comenzó a lanzar "[email protected]: xxxxxx / xxxx.git HEAD" devolvió el código de estado 128: stdout: stderr: Verificación de clave de host falló "error al clonar la imagen de git. Revertir la propiedad resolvió el problema


En nuestro caso, se tuvo que instalar git en el servidor de Jenkins.


Este es un tema muy complicado, incluso si está familiarizado con el funcionamiento de las cosas en https con certificados (OTOH si ve mi solución, parece muy lógico :)

Si desea conectarse a un repositorio de GIT a través de http (s) desde el shell, asegúrese de tener el certificado público almacenado (como archivo) en su máquina. Luego, agregarías ese certificado a tu configuración de GIT

git config [--global] http.sslCAInfo "certificado"

(reemplace "certificado" con la ruta completa / nombre del archivo PEM :)

Para el uso del intérprete de órdenes, también podría suministrar un ''.netrc'' que proporcione sus credenciales para el inicio de sesión del servidor http. Una vez hecho esto, podrá hacer un ''git clone https: // ...'' sin ningún suministro interactivo de credenciales.

Sin embargo, para el servicio de Jenkins es un poco diferente ... Aquí, el proceso de jenkins necesita estar al tanto del certificado del servidor, y no usa la configuración del shell (en el sentido del archivo de configuración global de git ''.gitconfig '') :PAG

Lo que necesitaba hacer es agregar otro parámetro a las opciones de inicio de Jenkins.

... -Djavax.net.ssl.trustStore = "keystore" ...

(reemplace "keystore" con la ruta completa / nombre como se explica a continuación :)

Ahora copie el archivo de almacén de claves de su servidor web que contiene el certificado a alguna ruta (sé que esto es un hack sucio y no exactamente seguro :) y refiérase a él con el parámetro ''-Djavax.net.ssl.trustStore =''.

Ahora el servicio de Jenkins aceptará el certificado del servidor web que proporciona el repositorio a través de https. Configure el URL del repositorio de GIT como

https://yourserver.com/your-repositorypath

Tenga en cuenta que aún necesita el ''.netrc'' en la carpeta de inicio del usuario jenkins para el inicio de sesión. Por lo tanto, lo que describo debe ser visto como una solución temporal ... hasta que se proporcione un plugin de ayuda credencial que funcione correctamente. En mi humilde opinión, este complemento (en su versión actual 1.9.4) tiene errores.

Nunca pude obtener las credenciales-ayudantes para trabajar de Jenkins, sin importar lo que intenté :( En el mejor de los casos, pude ver algunos errores sobre el archivo auxiliar de credenciales temporales no accesible, etc. Puedes ver muchos errores reportados sobre esto en Jenkins JIRA, pero no hay solución.

Entonces, si alguien lo hizo funcionar bien, por favor, comparta el conocimiento ...

PD: usando los complementos de Jenkins en las siguientes versiones:

Complemento de credenciales 1.9.4, complemento de cliente GIT 1.6.1, plugin Jenkins GIT 2.0.1


Jenkins se ejecuta como otro usuario, no como su inicio de sesión normal. Entonces, haz esto para resolver el problema ssh:

  1. Inicie sesión como jenkins su jenkins (primero debe hacer sudo passwd jenkins para poder establecer la contraseña de jenkins. No pude encontrar el valor predeterminado ...)
  2. Generar par de claves ssh-keygen : ssh-keygen
  3. Copie la clave pública ( id_rsa.pub ) en su cuenta github (o donde sea)
  4. Clone el repositorio como jenkins para agregar el host a los jenkins known_hosts cual es necesario. Ahora puede eliminar el repositorio clonado nuevamente si lo desea.

No se menciona aquí hasta ahora, pero esto también puede provenir del alijo. Nos encontramos con el mismo problema, la causa de nuestro problema fue que la instancia de stash que utilizamos para jenkins se bloqueó. Reiniciar el alijo lo resolvió en nuestro caso.


Permítanme agregar aquí que un problema menor que podría generar este tipo de error es la falta de la extensión .git en la URL del repositorio. Asegúrese de ingresar la URL completa que termina con .git . Yo uso bitbucket así que lo que hago es hacer clic en "clonar" y la URL completamente calificada se genera automáticamente para mí. Hay un enfoque similar con github.


Tuve exactamente el mismo problema. La forma en que lo resolví en Mac es esta:

  1. Cambiar al usuario de jenkins (sudo -iu jenkins)
  2. Ejecutar: ssh-keygen (Nota: Ahora está creando pares de claves ssh para el usuario de jenkins. Debería ver algo como esto: Ingrese el archivo en el que desea guardar la clave (/Users/Shared/Jenkins/.ssh/id_rsa):
  3. Sigue presionando Enter para obtener el valor predeterminado hasta el final
  4. Ejecute el comando que se muestra en el mensaje de error de Jenkins, en su terminal (por ejemplo: "git ls-remote -h [email protected]: adolfosrs / jenkins-test.git HEAD")
  5. Se le preguntará si desea continuar. Decir que sí
  6. El repositorio Github se agregará a su archivo known_hosts en: /Users/Shared/Jenkins/.ssh/
  7. Vuelve al portal de Jenkins y prueba tu URL de Github SSH
  8. Deberia de funcionar. Buena suerte

Verifique con la configuración a continuación. Eso siempre me funciona.

Configuración de Jenkins:

1) Verificar si el ejecutable git está apropiadamente especificado

2) Proporcionar enlace de repositorio SSH git @ blahblah

3) Debajo de las credenciales >> Seleccione el nombre de usuario y la clave de autenticación (vaya a su servidor, genere claves SSH ssh-keygen ... Copie las claves a JENKINS_HOME /, ssh) Debería poder conectarse a su repositorio GIT desde Jenkins