plugin git ssh jenkins

jenkins git plugin credentials



Jenkins cuelga en "Recuperar cambios de origen desde el origen" (8)

Estoy intentando configurar Jenkins en una máquina con Windows Server 2012, y estoy teniendo muchas dificultades.

Cosas que he hecho:

  • Creado sin contraseña id_rsa , e id_rsa.pub
  • Creó un archivo known_hosts para bitbucket.org utilizando ssh.exe -T bitbucket.org y aceptando agregar el host.
  • E: agregado E: a la variable HOME de todo el sistema
  • He añadido esos archivos a C:/Windows/SysWOW64/config/systemprofile/.ssh , así como a E:/.ssh
  • He vinculado mi clave pública a Bitbucket como clave de implementación.
  • He verificado tres veces todas mis URL, nombres de usuario, etc.
  • Incluso he sacado manualmente del repositorio para configurar una base inicial en C:/Program Files (x86)/Jenkins/jobs/MyProject/workspace/

Y aún así cuelga en

Building in workspace C:/Program Files (x86)/Jenkins/jobs/MyProject/workspace Checkout:workspace / C:/Program Files (x86)/Jenkins/jobs/MyProject/workspace - hudson.remoting.LocalChannel@13ca972 Using strategy: Default Fetching changes from 1 remote Git repository Fetching upstream changes from origin

Lo di alrededor de 20 minutos, así que no es una velocidad / tamaño del problema de repos. Si cancelo, esto es lo que se devuelve:

ERROR: Problem fetching from origin / origin - could be unavailable. Continuing anyway hudson.plugins.git.GitException: Error performing command: C:/Program Files (x86)/Git/bin/git.exe fetch -t origin +refs/heads/*:refs/remotes/origin/* at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.launchCommandIn(CliGitAPIImpl.java:780) at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.launchCommand(CliGitAPIImpl.java:739) at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.fetch(CliGitAPIImpl.java:160) at hudson.plugins.git.GitAPI.fetch(GitAPI.java:230) at hudson.plugins.git.GitSCM.fetchFrom(GitSCM.java:793) at hudson.plugins.git.GitSCM.access$000(GitSCM.java:57) at hudson.plugins.git.GitSCM$2.invoke(GitSCM.java:976) at hudson.plugins.git.GitSCM$2.invoke(GitSCM.java:942) at hudson.FilePath.act(FilePath.java:865) at hudson.FilePath.act(FilePath.java:838) at hudson.plugins.git.GitSCM.determineRevisionToBuild(GitSCM.java:942) at hudson.plugins.git.GitSCM.checkout(GitSCM.java:1101) at hudson.model.AbstractProject.checkout(AbstractProject.java:1364) at hudson.model.AbstractBuild$AbstractBuildExecution.defaultCheckout(AbstractBuild.java:670) at jenkins.scm.SCMCheckoutStrategy.checkout(SCMCheckoutStrategy.java:88) at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:575) at hudson.model.Run.execute(Run.java:1575) at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:46) at hudson.model.ResourceController.execute(ResourceController.java:88) at hudson.model.Executor.run(Executor.java:237) Caused by: java.lang.InterruptedException at java.lang.ProcessImpl.waitFor(Native Method) at hudson.Proc$LocalProc.join(Proc.java:319) at hudson.Launcher$ProcStarter.join(Launcher.java:360) at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.launchCommandIn(CliGitAPIImpl.java:769) ... 19 more ERROR: Could not fetch from any repository FATAL: Could not fetch from any repository hudson.plugins.git.GitException: Could not fetch from any repository at hudson.plugins.git.GitSCM$2.invoke(GitSCM.java:981) at hudson.plugins.git.GitSCM$2.invoke(GitSCM.java:942) at hudson.FilePath.act(FilePath.java:865) at hudson.FilePath.act(FilePath.java:838) at hudson.plugins.git.GitSCM.determineRevisionToBuild(GitSCM.java:942) at hudson.plugins.git.GitSCM.checkout(GitSCM.java:1101) at hudson.model.AbstractProject.checkout(AbstractProject.java:1364) at hudson.model.AbstractBuild$AbstractBuildExecution.defaultCheckout(AbstractBuild.java:670) at jenkins.scm.SCMCheckoutStrategy.checkout(SCMCheckoutStrategy.java:88) at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:575) at hudson.model.Run.execute(Run.java:1575) at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:46) at hudson.model.ResourceController.execute(ResourceController.java:88) at hudson.model.Executor.run(Executor.java:237)

Estoy completamente loco aquí, así que agradezco toda la ayuda que puedo obtener. Aquí hay algunos artículos de elección que he intentado sin ninguna mejora.

Autenticar Jenkins CI para el repositorio privado de Github

Permiso denegado (clave pública) al configurar Jenkins

Hudson Git Plugin no funciona en Windows

http://computercamp.cdwilson.us/jenkins-git-clone-via-ssh-on-windows-7-x64


Así es como lo resolví:

Ejecuté la herramienta psexec sysinternals para engendrar un CMD que se ejecuta bajo la cuenta LocalSystem (la misma cuenta como el servicio jenkins se está ejecutando)

PSEXEC -i -s -d CMD

En este mensaje de cmd, ejecuté el mismo comando git desde el directorio del espacio de trabajo, como lo hacen los procesos pendientes de GIT.exe. P.ej

d: / Programas / Jenkins / jobs / jobname / workspace> D - / Programs / Git / bin / git.exe fetch -t ssh + git: //[email protected]: 9360 / data / gitpub / myRepository. git + refs / heads / : refs / remotos / origen /

Et voila: me pidieron que ingrese "sí" para agregar la clave SSH a la lista conocida de hosts conocidos.


Así es como resolví un problema similar:

Msysgit instala dos git.exe . Una en C:/Program Files (x86)/Git/bin y una segunda en C:/Program Files (x86)/Git/cmd . El primero no se puede usar con Jenkins. Se bloqueará después de completar su trabajo. El segundo funciona a la perfección.

Actualice su configuración de Jenkins Git para que apunte al cmd/git.exe correcto y ¡disfrútelo!


Otro enlace que encontré muy útil al configurar jenkins en Windows, especialmente cuando se usa el instalador de MSI es este: http://opensourcetester.co.uk/2013/06/28/jenkins-windows-ssh/

Y una cosa más que no encontré obvio fue: tienes que usar la url SSH cuando te conectas a Github en lugar de https uno predeterminado. Con suerte, eso le ahorrará tiempo a alguien.


Para mí, fueron los permisos en la carpeta $ HOME / .ssh y su contenido. Después de configurarlo para el grupo de usuarios específico, Jenkins fue capaz de buscar los cambios después de un reinicio.


Pasé algunas horas tratando de resolver esto y descubrí que agregar la contraseña a la URL del repositorio solucionó el problema:

https://USERNAME:[email protected]/REPO.git

Tenga en cuenta que : entre nombre de usuario y contraseña


Solo experimenta la congelación en ''Obtención de cambios ascendentes desde el origen'' también.

Ejecutar Jenkins como un servicio en una máquina basada en Windows parece (por lo que he experimentado) tener problemas al usar SSL.

Solución alternativa]

  1. Modifique su servicio de Jenkins para que se ejecute en una cuenta local.
  2. Asegúrese de que su cuenta de administrador local esté configurada para realizar la interacción de Git con SSH.
  3. Reinicie Jenkins ( details ).
  4. Si Jenkins no comienza, tenía problemas tratando de sacar de Git. Manualmente mata los procesos de git y ssh, elimina tu java.exe de Jenkins y comienza manualmente el servicio de Jenkins.

Detalles sobre por qué elijo esta solución]

He seguido otros pasos antes con la configuración del host autorizado para aceptar el servidor y registrar la clave de Jenkins en el servidor para permitir la conexión. Me he asegurado de poder realizar correctamente las acciones de Git en mi cuenta del sistema local (que se ejecutó bajo el servicio de Jenkins). Aún así, la búsqueda se congelaría. Para comprobar que mi Git y SSL se configuraron correctamente, incluso fui al repositorio de Git configurado inicialmente en mi directorio de trabajos de Jenkins y realicé una solicitud de extracción con éxito en la cuenta del sistema local . Funcionó; por lo tanto, las teclas se han configurado correctamente.

Olvidé dónde lo leí, pero escuché problemas al tratar con Git / SSH bajo un sistema local. Con este conocimiento, jugué con mi entorno Git y modifiqué la variable de entorno GIT_SSH para usar plink (con una combinación de Putty para recordar la clave del servidor, Puttygen para convertir una clave OpenSSL en clave Putty y desfile para recordar mis claves) para plink . Una vez que lo conseguí trabajando con plink, no encontré que fuera una solución utilizable. Me ordeno usar correctamente plink, también tuve que ejecutar el concurso bajo mi cuenta del sistema local para que el servicio Jenkins negocie correctamente las llamadas SSH. Después de pensar cómo configurar correctamente mi estado inicial al reiniciar, no quería poner todo este esfuerzo en hacer funcionar la conexión SSH.

En cambio, decidí que era más fácil simplemente ejecutar Jenkins bajo mi cuenta de administrador local, que también estaba configurada para tratar con el servidor de Git. No tener que lidiar con las claves SSH configuradas para la cuenta del sistema local y mis acciones de git funcionaron bien.

Tenga en cuenta que la respuesta de David Gageot puede aplicarse a algunos. No tuve que modificar ninguna de mis configuraciones de Git ya que cuando instalé Git, elijo la opción Run Git from the Windows Command Prompt que mapea una ruta al directorio C:/Program Files (x86)/Git/bin/cmd/ .


Tuve el mismo problema en mi computadora portátil y pude encontrar una solución, sin embargo, esto solo se aplica si está ejecutando la guerra de Jenkins en un contenedor web Tomcat configurado como un servicio de Windows.

Solo tuve que configurar el servicio Tomcat para iniciar sesión como mi usuario de Windows en lugar de Local System.


La versión 2.6.1 del cliente de Git para Windows soluciona este problema en Jenkins. Ahora "Obtener cambios ascendentes desde el origen" no tiene ningún retraso.

Estoy usando el git cmd en Jenkins desde:

C: / Archivos de programa / Git / cmd / git.exe