2011-01-21 12 views
5

¡Hace más de un día que llevo esto, me está volviendo loco!Hudson no buscará en Git

  • tengo Git instalado en un PC Win7, y selecciona la opción PuTTYgen en instalar.
  • He generado claves ssh usando PuttyGen; He agregado la clave ssh a mi cuenta de Git y he vinculado la clave privada en el concurso.
  • He configurado GIT_SSH para apuntar a mi masilla plink.exe.
  • He usado Putty para conectar a codaset & git para que sean aceptados como hosts conocidos.

puedo clonar desde la consola, pero Hudson falla:

Fetching upstream changes from [email protected]:xxx/xxx.git 
[workspace] $ "C:\Program Files\Git\bin\git.exe" fetch -t [email protected]:xxx/xxx.git +refs/heads/*:refs/remotes/origin/* 
ERROR: Problem fetching from origin/origin - could be unavailable. Continuing anyway 
ERROR: Could not fetch from any repository 
FATAL: Could not fetch from any repository 
hudson.plugins.git.GitException: Could not fetch from any repository 
    ... 

Si funciono con el comando exacto git en una consola, que funciona bien:

"C:\Program Files\Git\bin\git.exe" fetch -t [email protected]:xxx/xxx.git +refs/heads/*:refs/remotes/origin/* 

He intentado funcionar plink para conectarse directamente a GitHub:

plink -agent -v [email protected] 
Looking up host "github.com" 
... 
Pageant is running. Requesting keys. 
Pageant has 1 SSH-2 keys 
Using username "git". 
... 
Authenticating with public key "rsa-key-20110121" from agent 
... 
Hi xxx! You've successfully authenticated, but GitHub does not provide 
shell access. 

Probé entonces la conexión a codaset:

plink -agent -v [email protected] 
m 
Looking up host "codaset.com" 
Pageant is running. Requesting keys. 
Pageant has 1 SSH-2 keys 
Using username "git". 
... 
Authenticating with public key "rsa-key-20110121" from agent 
... 
Opened channel for session 
Server refused to allocate pty 
Started a shell/command 
Error: Command is required. 
... 
Server sent command exit status 255 
Disconnected: All channels closed 

Por lo tanto, una respuesta ligeramente diferente de codaset que de git. Sin embargo, creo que esto puede ser una pista falsa, ya que obtengo el mismo error si trato de conectarme a un proyecto estándar de git desde Hudson.

que también estableció Ir Server (climatizador como era), y conseguir un error similar al intentar conectarse a git desde aquí:

ERROR: FATAL ERROR: Disconnected: No supported authentication methods available 
ERROR: fatal: The remote end hung up unexpectedly 

que me hace pensar que el problema debe recaer en la autenticación, en vez que los detalles Hudson ...?

Como siempre, ¡cualquier ayuda muy apreciada!

Respuesta

2

Esto podría ser un problema de permisos. Usted puede clonar en la misma máquina, pero supongo que no lo hizo como el mismo usuario que ejecuta Hudson. su a ese usuario, luego intente de nuevo. Puede exponer el problema.

+1

Bueno, tiene sentido ya que funciona si ejecuto Hudson desde la consola, pero no si ejecuto Hudson como un servicio. ¡Aclamaciones! – laura

0

¿Está hudson ejecutándose en la misma máquina con la que puede recuperar con éxito? De lo contrario, probablemente necesite generar una clave ssh en el esa máquina y agregarla a su cuenta github.

De cualquier manera, la primera pregunta (a menos que la haya perdido en su pregunta) es donde tiene funcionando Hudson.

+0

Gracias por responder. Puedo buscar/clonar con éxito desde la misma máquina en la que Hudson se está ejecutando. (De hecho, incluso traté de clonación manual en mi espacio de trabajo hudson para ver si podía ayudar con las cosas. No funcionó ...) – laura

0

Después de una larga batalla, resolví esto ejecutando hudson desde la consola, en lugar de como un servicio ... No es ideal, ¡pero en este momento un viernes es lo suficientemente bueno!

+1

Las claves ssh tienden a ser específicas del usuario. Si lo ejecutaba como un servicio, es bastante posible que se ejecutara bajo una cuenta de usuario diferente (por lo tanto, está causando el problema de permisos). – jerhinesmith

0

Recibí un error de SSH "servidor se niegan a iniciar un shell/comando" cuando interactúo con mi parte llamada a través de Putty Plink.exe

Me di cuenta de que el problema es que mi parte llamada se encuentra en el modo interactivo. Por ejemplo, después de conectarme con la persona a la que llamó, mi persona llamada me pidió que presionara cualquier tecla para continuar. Después de presionar la tecla Enter y escribir los comandos, necesito escribir "exit", luego presionar "Enter" para salir de la conexión SSH.

Para hacerlo interactuar con la parte llamada, construí mis comandos de la siguiente manera:

Notas: Estoy utilizando el código de PowerShell aquí como ejemplo.

$Commands= @" 

    show status 
    exit 
    exit 
"@ 

Tenga en cuenta que cada salto de línea en el parámetro anterior representa la tecla "Enter". Luego, pasé el parámetro de comandos a la plink.exe de la siguiente manera:

$output = $Commands |.\Putty\plink.exe -auto_store_key_in_cache -l $UserName -pw $Password $CalledPartyIP -v 2>&1 

pasará una lista de comandos a plink y la salida el resultado detallado de la variable de salida $.

Espero que esto ayude!

Cuestiones relacionadas