2009-12-07 23 views
6

Bien, tengo problemas para configurar SVN + SSH.Conexión SVN + SSH que genera el error 210002, conexión de red cerrada inesperadamente

Tengo SVN ejecutándose en un servidor Linux y tratando de conectarme desde una laptop Mac con Snow Leopard. XCode intenta conectarse, pero muestra el mensaje "Error 210002, conexión de red cerrada inesperadamente".

Nada en línea parece explicar. Me conecto utilizando xcode con HTTP y funciona correctamente para todos los repositorios.

Aquí está mi SVN vesrion:

svn, version 1.5.4 (r33841) 
compiled Aug 7 2009, 01:44:11 

Copyright (C) 2000-2008 CollabNet. 
Subversion is open source software, see http://subversion.tigris.org/ 
This product includes software developed by CollabNet (http://www.Collab.Net/). 

The following repository access (RA) modules are available: 

* ra_neon : Module for accessing a repository via WebDAV protocol using Neon. 
    - handles 'http' scheme 
    - handles 'https' scheme 
* ra_svn : Module for accessing a repository using the svn network protocol. 
    - with Cyrus SASL authentication 
    - handles 'svn' scheme 
* ra_local : Module for accessing a repository on local disk. 
    - handles 'file' scheme 

actualmente lo tengo configurado para utilizar HTTP, que funciona sin problemas.

http://[email protected]/svn/project 

puedo ssh al servidor mediante nombre de usuario y contraseña, y ejecutar comandos tales como

svn list file:///home/svn/project 

y obtener una lista de los contenidos de ese proyecto. Entonces, no creo que sea un problema de permisos.

Los archivos en el servidor son at/home/svn/project.

Estoy tratando de hacer que esto funcione en XCode. No funciona usando la ruta como/home/svn/project o simplemente/svn/project como funciona en http.

Pero, desde el ordenador portátil, el siguiente comando ¿La información de la lista como se esperaba:

svn list svn+ssh://[email protected]/home/svn/project 
[email protected]'s password: 
branches 
tags 
trunk 
Killed by signal 15. 

svnserve El programa no se está ejecutando, pero el usuario que estoy entrando con tiene la capacidad para ejecutarlo. Si lo comienzo en modo de primer plano, no parece cambiar nada.

Cualquier idea de lo que me estoy perdiendo. Me encantaría poder ejecutar svn + ssh y desactivar el acceso http.

¡Salud!

EDITAR

Para algo más de información, he encontrado que es sólo un repositorio. Todos los demás repositorios en el servidor parecen estar funcionando correctamente con SVN + SSH.

Parece ser un error de XCode, pero no estoy seguro. Es algo acerca de cómo XCode lee la información de conexión SSH que puede almacenarse en la memoria caché de la computadora.

+0

En Ubuntu, [ este hilo] [1] me ayudó. [1]: http://unix.stackexchange.com/questions/27143/how-to-configure-svn-ssh-with-ssh-on-non-standard-port – Gordak

Respuesta

1

Ese 'Asesinado por la señal 15' es una pista de que algo no está del todo bien incluso con el uso de la línea de comandos. Recuerdo solucionar el mismo problema, pero no recuerdo la causa exacta. Creo que tenía que ver con la forma en que manejaba mi puerto ssh no estándar y con un nombre de usuario diferente en mi computadora local y en el servidor remoto.

¿Su host svn tiene un puerto ssh no estándar y/o un nombre de usuario diferente? Cambié el uso de una variable SVN_SSH para configurar el puerto y poner una entrada adecuada en mi archivo .ssh/config que establece tanto el nombre de usuario como el puerto para la conexión ssh.

Host example.com 
    User username 
    Port port 

No estoy seguro si xcode respeta su .ssh/config.

+0

Es algo así. No tengo un archivo .ssh/config, pero sí tengo un archivo .ssh/known_host. Intenté con un repositorio diferente, y estaba trabajando sobre http, pero el host allí era www.example.com, y no solo example.com, y tenía una entrada separada en el archivo de host conocido. Dio el mismo error, pero de alguna manera conseguí que funcionara cambiando el host a solo example.com. Pero funciona a pesar de que el otro repositorio ve el mensaje de la señal 15 como muerto. Gracias por su respuesta. No sé cuál es el problema, y ​​me gustaría resolverlo, pero no es tan urgente en este momento. – Michael

4

Para suprimir los mensajes de "muerte por señal 15", establezca SVN_SSH="ssh -q" como se menciona here.

+0

Este es el correcto, al menos para Mac OS X. Cambié en ~/.subversion/config desde (en la sección de túneles): 'ssh = $ SVN_SSH ssh -o ControlMaster = no' a' ssh = $ SVN_SSH ssh - q -o ControlMaster = no' – carlosayam

1

¿Su servidor tiene un servidor de seguridad, y si es así, limita el número de intentos de conexión SSH, como por el método descrito here? Estábamos experimentando exactamente el mismo problema de tener la conexión caída para svn checkout, pero no para svn ls, más de svn+ssh://. Ajustamos las configuraciones de conexión en el cortafuegos para que fueran más indulgentes, permitiendo más conexiones por minuto, y esto solucionó nuestros problemas instantáneamente. Parece que SVN es muy agresivo al iniciar conexiones durante ciertas operaciones, y menos para otras.

+0

Me gustaría obtener este problema dentro de la red. El enrutador no pareció ayudar. He cambiado para usar https. – Michael

0

Tuve el mismo problema con "Asesinado por la señal 15.", por cierto. Agregar host, usuario y puerto al .ssh/config no resolvió este problema.

OSX 10.5/10.6 no documenta el indicador -q (es por eso que al menos ignoré este consejo, como sugirió sl, durante mucho tiempo), pero funciona en OSX 10.5 (seguramente en 10.6, también, pero no lo tengo). En ~/.subversion/config, añadí

ssh = $SVN_SSH ssh -q -o ControlMaster=no 

algún lugar alrededor de la línea 55 (si el suyo es todavía fresco fuera de la caja, es probable que tenga una línea comentada de forma muy similar a este derecho allí). El -o ControlMaster=no trata con otra configuración de ssh que tengo, que de otro modo lo rompe por completo.

0

Así es como lo arreglé (en Mac OS X, pero la corrección debería funcionar en cualquier cliente).

Este problema particular surge cuando está utilizando un puerto no estándar (digamos 12001 por ejemplo) para su servidor SSH.

Al parecer, el cliente SVN experimenta errores de sintaxis cuando se le da una dirección de puerto en una línea de comandos como ésta:

svn list svn+ssh://[email protected]:12001/home/username/svn/myproject 

Por lo tanto, para solucionar este problema, es necesario crear un archivo de configuración del lado del cliente para SSH como esto:

cd ~ 
cd .ssh 
vi config (create a config file like the one that follows) 
:w 
:q 

archivo de configuración ubicado en ~/.ssh/config:

Host domain.com 
    User username 
    Port 12001 

A continuación, emitirá su svn + ssh sin el puerto de la siguiente manera:

svn list svn+ssh://[email protected]/home/username/svn/myproject 
1

Ninguna de las soluciones que aquí se trabajó con svn+ssh, pero pude conectar y la salida a través de https:

$ svn checkout --username myusername https://scm.gforge.inria.fr/svn/concha 
Cuestiones relacionadas