Hay bastantes articulillos sobre como conectar con un servidor SVN mediante SSH, utilizando la opción directa, que no nos permite usar ficheros de claves pública/privada de ssh (confianza ssh), ni modificar el puerto de ssh, ni en definitiva usar toda la potencia de ssh.
El sistema directo para configuraciones sencillas de ssh es:
$ svn co svn+ssh://servidor/proyecto
Pero si el servidor está configurado con un mínimo de seguridad esto no es suficiente (Configuración de ssh).
Sin embargo hay una forma casi igual de sencilla usando los túneles SSH que nos permite toda la funcionalidad y potencia de SSH (claves ssh, puerto…).
Primero, desde el cliente, hacemos un túnel ssh desde el puerto 3690 del servidor al puerto 3690 de la máquina local (cliente). En este ejemplo modificamos el puerto y utilizamos claves ssh:
$ ssh usuario@servidor -p xx -N -f -i id_dsa_key_ssh -L 3690:localhost:3690
A partir de hay usamos svn como si estuviese instalado en local:
$ svn co svn://servidor/proyecto
Los túneles ssh son uno de los mejores inventos… se pueden usar para acceder “localmente” a cualquier servidor externo, de cualquier servicio (postgres, svn…) de forma segura y cómoda. [Túneles SSH]