Hace poco configuré el svn en mi cuenta de hosting, que no tienen problemas por darme acceso ssh o que ponga un subversion ahí, pero debo acceder al svn a traves de un tunnel en lugar se usar el svnserve o el modulo de apache web_dav. por lo tanto tuve que aprender como configurar el server y el cliente para que funcionen de esta manera
vamos por pasos, primero configuramos el server.
nos logueamos, luego creamos en nuestra cuenta un directorio para poner los repositorios ahí
mkdir repos
svnadmin create ~/repos/myrepo
una vez hecho esto pasamos a configurar el server del repositorio, para esto editamos el archivo (en este caso) ~/repos/myrepo/conf/svnserve.conf
realm = McNiacs at work
anon-access = write
auth-access = write
una vez hecho esto probamos en el mismo server que podamos acceder
svn ls ~/repos/myrepo
si todo anduvo bien , pasamos a configurar el cliente, es decir nuestra maquina. En mi caso uso gnu/linux, para windows u otros OS debe ser mas o menos parecido, pero van a tener que buscar los archivos de config en algún otro lado
para conectarse con un tunnel, el cliente de svn ya tiene un cliente ssh integrado, pero por defecto usa el puerto 22 y el nombre de usuario con el cual estamos logueado, por lo cual hay que configurarlo para que tome los parámetros que necesitamos. esto por suerte tambien es bastante simple.
editamos el sigueinte archivo en nuestra maquina ~/.subversion/config y dentro de la sección [tunnels] agregamos una linea similar a esta:
myssh = $MYSSH ssh -pmy_port -lmy_username
por supuesto my_port debe ser reemplazado por el puerto al que deseen conectarse y my_username por el nombre de usuario
una vez hecho esto podemos acceder al repositorio de la siguiente manera
svn ls svn+myssh://mydomain.com/path_completo_al_repositorio
ahora funciona, pero todavia tenemos un tema, es bastante molesto, por no decir muy molesto, tener que escribir la clave cada vez que hago un commit, update, checkout, ls , etc, etc, etc, por lo cual lo mas facil de hacer es configurar el ssh para acceder usando una ssh key. esto es solo util si uds son el unico usuario de la maquina, ya que sino, cualquier persona podría acceder a la cuenta de hosting con solo usar la maquina.
en la maquina local generamos las claves (si no las tienen ya generadas) usando el programa ssh-keygen
esto genera dos archivos, la clave privada y publica respectivamente. por lo general la manera de habilitar el acceso de este modo al server es simplemente copiar el contenido de nuestra clave publica dentro del archivo ~/.ssh/authorized_keys de nuestra cuenta en el server. pero en mi caso la cosa era distinta, como el server tiene cpanel hay que usar una herramienta que es parte del mismo para subir la clave publica (gracias sebas por el dato). una vez que se sube la clave publica (solo la publica, no las dos) ya se puede acceder al server sin que nos pregunte la clave cada vez. et voilà ahora cuando ponemos la siguiente linea en la consola
svn ls svn+myssh://mydomain.com/path_completo_al_repositorio
ya no nos pida una clave
cualquier comentario y/o corrección es bienvenido.
Esteban


Esteban, tengo un truquito para vos. Ubuntu y otros linux vienen con un comando más para este proceso. Después de generar el archivo con ssh-keygen, lo podes copiar directamente al otro servidor con ssh-copy-id user@remotehost