La choza de McNiac

Como configurar subversion con un ssh tunnel

Filed under: Programción, Programming by mcniac

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

Share/Save/Bookmark

One Response to “Como configurar subversion con un ssh tunnel”

  1. 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

Leave a Reply

  •  

    April 2008
    M T W T F S S
    « Jan   May »
     123456
    78910111213
    14151617181920
    21222324252627
    282930  
  • Podcast Player

This site is powered by WordPress & Theme:Morning Mountain Copyright © 2007 La choza de McNiac