webhook trigger plugin gitscm for windows git github jenkins

windows - trigger - Permiso denegado(clave pública) al configurar Jenkins



jenkins github webhook (4)

Hay dos complementos en jenkins relacionados con ssh que se pueden usar: Publicar sobre SSH y Jenkins SSH .

El primer complemento proporciona la disponibilidad para establecer una clave ssh global y el segundo complemento proporciona la disponibilidad para establecer varias claves ssh.

A continuación, debe instalar dos complementos más que se utilizarán en la configuración del proyecto GitHub Plugin y Jenkins Git Plugin .

El complemento GitHub se usará para configurar el proyecto GitHub . El plugin Jenkins Git se usará para establecer la "URL del repositorio" y otras cosas como una rama, etc.

Todos los complementos están disponibles en la pestaña disponible en Jenkins Plugin Manager.

Copiado de mi blog, sobre el tema :

Configuración de Jenkins:
El complemento Jenkins SSH proporciona la disponibilidad para establecer la clave privada por host, el segundo complemento hace el trabajo para un host global.
Si se utiliza el complemento Jenkins SSH, en los hosts remotos SSH escriba el host, el usuario, la frase de contraseña y la ruta a la clave privada.
Si se utiliza Publicar en SSH, en la configuración SSH escriba la contraseña y pegue la clave privada o escriba la ruta a ella.
La configuración del proyecto es:
Proyecto GitHub https://github.com/GitUser/iOS-project/
* Gestión de código fuente
-> Git
-> -> Repositorios
-> -> -> URL del repositorio: [email protected]: GitUser / iOS-project.git
- Depende de usted configurar una rama o tomar la predeterminada:
* Build Triggers
-> Poll SCM - Seted -
-> Horario: * * * * *
*Construir
-> Ejecutado Shell

-> -> Command: xcodebuild -target iOS-project -configuration AdHoc -sdk iphoneos5.0 clean -> -> Command: agvtool new-version -all $BUILD_NUMBER -> -> Command: xcodebuild -target iOS-project -configuration AdHoc -sdk iphoneos5.0 -> -> Command: xcrun -sdk iphoneos5.0 PackageApplication -v $WORKSPACE/build/AdHoc-iphoneos/iOS-project.app -o $WORKSPACE/build/AdHoc-iphoneos/iOS-project-$BUILD_NUMBER.ipa PROVISIONING_PROFILE="<provisioning profile>" -> -> Command: curl http://testflightapp.com/api/builds.json -F file=@$WORKSPACE/build/AdHoc-iphoneos/iCushion-1.0-$BUILD_NUMBER.ipa -F api_token=<api_token> -F team_token=<team_token> -F notes="This is an autodeploy build from Jenkins!" -F notify=True -F distribution_lists="<distributedlist 1>, <distributedlist 2>"

Estoy configurando Jenkins en una máquina servidor Win 2008 y estoy teniendo algunos problemas para configurar Jenkins para conectarme a GitHub. Obtuve el siguiente error:

Command "git.exe fetch -t [email protected]:USER/REPO.git +refs/heads/*:refs/remotes/origin/*" returned status code 128: Permission denied (publickey). fatal: The remote end hung up unexpectedly 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:950) at hudson.plugins.git.GitSCM$2.invoke(GitSCM.java:908) at hudson.FilePath.act(FilePath.java:758) at hudson.FilePath.act(FilePath.java:740) at hudson.plugins.git.GitSCM.checkout(GitSCM.java:908) at hudson.model.AbstractProject.checkout(AbstractProject.java:1184) at hudson.model.AbstractBuild$AbstractRunner.checkout(AbstractBuild.java:537) at hudson.model.AbstractBuild$AbstractRunner.run(AbstractBuild.java:425) at hudson.model.Run.run(Run.java:1376) at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:46) at hudson.model.ResourceController.execute(ResourceController.java:88) at hudson.model.Executor.run(Executor.java:175)

Cosas que he comprobado

  • El servicio de Jenkins se ejecuta bajo mi nombre de usuario.
  • Cambié mi clave SSH para que ya no tenga una contraseña.
  • He verificado que mi clave SSH es válida ejecutando el mismo comando que Jenkins usando msysgit.
  • Verificado todas mis rutas son correctas.

Configuración de configuración de Jenkins

  • Jenkins 1.418
  • Plugin GitHub 0.5
  • Git plugin 1.1.9

msysgit funciona, pero el indicador de CMD no funciona Cuando navego a un repositorio válido y ejecuto el comando desde el indicador de DOS, también falla.

¿Tienes alguna idea de lo que me puedo perder?

Gracias por tu ayuda.


Parece que el complemento git ahora proporciona una manera de apuntar a Jenkins al directorio de inicio.

  1. Haga clic en el botón Agregar credencial.
  1. Apunta Jenkins a tu clave privada.
  1. Seleccione las credenciales recién agregadas de la lista.

En mi entorno (Jenkins de 64 bits con Java de 32 bits, ejecutándose en un Windows Server 2016 de 64 bits), la solución fue colocar la clave en la carpeta C: / Windows / SysWOW64 / config / systemprofile / .ssh . De acuerdo con la documentación de Git Plugin :

De forma predeterminada, el instalador de Jenkins Windows configura Jenkins para que se ejecute como un servicio en Windows, que se ejecuta como la "Cuenta del sistema local", NO su cuenta de usuario. Dado que la "cuenta del sistema local" no tiene configuradas las claves SSH o known_hosts, "git clone" se bloqueará durante la compilación. Es posible mantener a Jenkins ejecutándose como la "cuenta del sistema local" y clonar repositorios a través de SSH asegurándose de que la "cuenta del sistema local" está configurada con un directorio .ssh configurado correctamente (es decir id_rsa, id_rsa.pub, AND known_hosts)


Como comenté, especificar la variable de entorno HOME es la clave cuando se usa el protocolo ssh.
Como Windows no tiene un HOME , debe definirlo explícitamente, en el directorio que desee.

Sin embargo, Vestnik comenta:

He especificado anular HOME en el nodo esclavo de Windows para dirigirlo a C:/jenkins .
He puesto id_rsa correcto bajo C:/jenkins/.ssh pero todavía tengo este problema.
Mi agente esclavo se ejecuta como servicio en la cuenta SYSTEM.

Dos consejos:

  • usted necesita hacer que su esclava muestre " set " para verificar si HOME está definido cuando se usa con la cuenta SYSTEM.
    Si no es así, eso puede significar que necesita agregar esa variable a las "variables de entorno del sistema", no a las "variables de entorno del usuario".
  • No olvide tener id_rsa e id_rsa.pub en el directorio %HOME%/.ssh : necesita claves ssh tanto públicas como privadas. (como se menciona en " git clone with ssh issue ")

Si tiene una compilación parametrizada, también puede definir HOME esa manera y verificar si su esclavo selecciona el valor correcto para HOME :