2012-05-31 17 views
11

Estoy ejecutando mi servidor y agente de TeamCity 7 en MacOS. Mi informe está en github. Uso ssh y sé que la autenticación está configurada correctamente, porque la prueba es exitosa.Error del agente de TeamCity "no se pudo realizar el pago en el agente"

La compilación funciona bien cuando uso VCS Checkout Mode "Automatically on server"; sin embargo, cuando uso el modo VCS Checkout "Automáticamente en el agente" aparece este error.

[13:40:35][Updating sources] Failed to perform checkout on agent: '/usr/bin/git fetch --progress origin +refs/heads/master:refs/remotes/origin/master' command failed. 
stderr: java.io.IOException: Authentication failed 
    at org.jetbrains.git4idea.ssh.SSHMain.authenticate(SSHMain.java:275) 
    at org.jetbrains.git4idea.ssh.SSHMain.start(SSHMain.java:159) 
    at org.jetbrains.git4idea.ssh.SSHMain.main(SSHMain.java:139) 
fatal: The remote end hung up unexpectedly 

¿Qué me falta?

+1

¿Tiene la clave ssh correcta en el agente? La "conexión de prueba" en la configuración raíz de VCS prueba la conexión solo entre el servidor de TeamCity y su repositorio. – neverov

+0

Supongo que no, pero ¿cómo averiguo la cuenta del agente? ¿Puedo cambiar la cuenta en la que trabaja el agente? – mishod

+0

La cuenta del agente es la cuenta bajo la cual se inició el agente. Entonces sí, puedes cambiar eso. – neverov

Respuesta

17

Pruebe agregar teamcity.git.use.native.ssh = true como un parámetro de configuración en su configuración de compilación.

Es lo que me ayudó a resolver un problema similar. Aprendí este truco de here.

+0

Esta sugerencia me lo arregló también. – cheez

+0

¡Esto hizo mi día! ¡Muchísimas gracias! –

+1

Este [enlace] (https://youtrack.jetbrains.com/issue/TW-52052#comment=27-2607007) también puede ser útil si tiene claves Putty SSH (consulte la secuencia de comentarios) – sam9046

1

Lo que para mí no fue del todo obvio es que la clave privada predeterminada en el servidor se copia al agente y se usa allí. Intenté primero en vano agregar la clave privada al usuario que el agente estaba ejecutando como (obviamente en la máquina del agente). Pero luego agregué la clave privada al usuario que estaba ejecutando TeamCity en la máquina del servidor, y luego la comprobación del lado del agente comenzó a funcionar.

También usé la propiedad teamcity.git.use.native.ssh=true, pero no creo que haya ayudado con este problema en particular.

El único rastro de esta información estaba en this comment.

Cuestiones relacionadas