Centro de soporte. Hosting: SVN + SSH

SVN + SSH

¿Qué es Subversion [SVN+SSH]?

Subversion es un sistema de control de versiones diseñado específcamente para reemplazar al popular CVS. Es software libre bajo una licencia de tipo Apache/BSD. Se le conoce también como SVN por ser el nombre de la herramienta utilizada en la línea de órdenes.

Las principales ventajas de utilizar Subversion SVN (sistema de control de versión) para verificar las alteraciones en el desarrollo de tus sitios son:

  • Histórico de las modificaciones: permite analizar el histórico del desarrollo del sitio, incluyendo la indicación de la persona usuaria que realizó la modificación y posibilitando la inserción de comentarios acerca de la actualización.
  • Facilidad de restablecimiento: además de almacenar todo el histórico de desarrollo del documento, SVN permite rescatar una determinada versión del documento o página de cualquier fecha más antigua, optimizando el tiempo necesario para deshacer alteraciones en tu sitio.
  • Comparación entre versiones: permite comparar versiones de tu código entre sí y saber lo que fue añadido, modificado o excluido en cualquier punto del documento.
  • Sincronización de versiones: SVN es la solución ideal para proyectos realizados en equipo, pues evita eventuales diferencias entre las versiones almacenadas, dinamizando el proceso de desarrollo de un sitio. +info.

Breve introducción a este documento

En las siguientes páginas vamos a explicarte cómo configurar el acceso a un repositorio SVN ubicado en un servidor con sistema operativo Linux de nuestra Red. Los datos del escenario que utilizaremos en nuestros ejemplos son:

  •  Servidor: vl300 (Servidor VPS Linux)
  •  Hosting: dh.tic.gl
  •  Usuario: dhtic
  •  Protocolo: svn+ssh
  •  Repositorio: /home/dhtic/cloud-hosting-web/

Primeros pasos

Cómo crear un repositorio SVN en tu servidor

1. Conéctate vía SSH a tu hosting. Accede a tu cuenta vía SSH como de costumbre.

root@naia:~#ssh dhtic@dh.tic.gl
dhtic@dh.tic.gl's password:
IMPORTANTE: por motivos de seguridad e integridad del servidor, esta sesión de SSH va a ser registrada en un log y será monitorizada por el departamento de sistemas. Cualquier intento de alterar la seguridad del sistema será causa inmediata de la baja de servicios contratados y la puesta a disposición de las autoridades correspondientes.
Last login: Fri Feb 25 08:42:59 2011 from 1.110.222.87.dynamic.jazztel.es
dhtic@vl300:~$

2. Crea el repositorio subversion.

Los datos versionados, en el SVN, quedan en repositorios. Puedes tener cuantos repositorios quieras, y cada repositorio puede tener varios directorios (proyectos) con archivos y subdirectorios dentro.

Para crear el repositorio basta teclear:

svnadmin create [nombre_repositorio]

Genera las claves de acceso SSH:

dhtic@vl300:~$ mkdir .ssh ; chmod 700 .ssh/
dhtic@vl300:~$ ssh-keygen -t dsa -f .ssh/cloud-hosting-web.svn.key
Generating public/private dsa key pair.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in .ssh/cloud-hosting-web.svn.key.
Your public key has been saved in .ssh/cloud-hosting-web.svn.key.pub.
The key fingerprint is:
e6:31:14:38:85:a6:d1:58:5d:18:c8:a4:1a:02:50:42 dhtic@vl300.dinaserver.com
The key's randomart image is:
+--[ DSA 1024]----+
|*E.! *o*++. !!!!!|
|.. !o.O o. !!!!!!|
|. . .+ .. !!!!!!!|
| . o.! . !!!!!!!!|
| !. !!!!S !!!!!!!|
|!!!!!! o o !!!!!!|
|!!!!!!! . !!!!!!!|
|!!!!!!!!!!!!!!!! |
|!!!!!!!!!!!!!!!! |
+-----------------+

3.- Copia la llave pública en el archivo de claves autorizadas

dhtic@vl300:~$ cat .ssh/cloud-hosting-web.svn.key.pub >> .ssh/authorized_keys2

4.- Establece los permisos correctos. En nuestro caso 600

dhtic@vl300:~$ chmod 600 .ssh/authorized_keys2

5.- Lee la clave privada y cópiala en el portapapeles

dhtic@vl300:~$ cat .ssh/cloud-hosting-web.svn.key
-----BEGIN DSA PRIVATE KEY-----
Proc-Type: 4,ENCRYPTED
DEK-Info: DES-EDE3-CBC,7FE995BEDA6DF2EF
+1ER2u0yskt8s3/VSNfmtsNbP8JUjmTVDV04OtDUVzHZ96BihxIgJb1T/vEoDNPC
JumeHRX5TCLmLopNaoWq114fiOQMrAzKxQ6LaO+R7yc3oDHshOQNjoIhKHPG6uih
mbtjB3nSjlmOxEzBjasqaLrimXkaJZSM4MjdqPU1Xeq1wBkofoKqPC6/VZUtZfka
/7FSb4SVTmcAw+ShldKSdSjlRA/CDKrbLfSsSqosjfRvq/sNnZqSL0Jfjo52XIXw
BoS1U+aestgbzbAclMWtxqWLGNw/tRB5xCI97CLqqgRL5bPtCKQNgKOprq5hsShc
sswEEuX/8nnWKnn0xlvG8KnrUcMoVxGaTbxsiOiz6OM5YeVo31ob2miNeRuZSUe6
Ol96aBWJrKpzM2hHjUFJAqRU9gTWD69DonI+XrgIXc9jnyX1wL4AqrSUQ6HYVAJD
iR89QswsrAEaR0i9CfqxsG2DvV4PzF6BxS5wZVi0PGnZZaT5/7XOtg8AjhB+yRjB
sPlTgJPNABsUO7wS9yGkVt7Lj//Lv73eQj8vm7B/Vy/+fKlF8F79PBKZxVHyXtKu
7GbwxTc+TvwMr5PsJKNPog==
-----END DSA PRIVATE KEY-----$

6.- Copia la clave en tu sistema operativo

root@naia:~#cat > .ssh/cloud-hosting-web.svn.key [intro] [pegar]
-----BEGIN DSA PRIVATE KEY-----
Proc-Type: 4,ENCRYPTED
DEK-Info: DES-EDE3-CBC,7FE995BEDA6DF2EF
+1ER2u0yskt8s3/VSNfmtsNbP8JUjmTVDV04OtDUVzHZ96BihxIgJb1T/vEoDNPC
JumeHRX5TCLmLopNaoWq114fiOQMrAzKxQ6LaO+R7yc3oDHshOQNjoIhKHPG6uih
mbtjB3nSjlmOxEzBjasqaLrimXkaJZSM4MjdqPU1Xeq1wBkofoKqPC6/VZUtZfka
/7FSb4SVTmcAw+ShldKSdSjlRA/CDKrbLfSsSqosjfRvq/sNnZqSL0Jfjo52XIXw
BoS1U+aestgbzbAclMWtxqWLGNw/tRB5xCI97CLqqgRL5bPtCKQNgKOprq5hsShc
sswEEuX/8nnWKnn0xlvG8KnrUcMoVxGaTbxsiOiz6OM5YeVo31ob2miNeRuZSUe6
Ol96aBWJrKpzM2hHjUFJAqRU9gTWD69DonI+XrgIXc9jnyX1wL4AqrSUQ6HYVAJD
iR89QswsrAEaR0i9CfqxsG2DvV4PzF6BxS5wZVi0PGnZZaT5/7XOtg8AjhB+yRjB
sPlTgJPNABsUO7wS9yGkVt7Lj//Lv73eQj8vm7B/Vy/+fKlF8F79PBKZxVHyXtKu
7GbwxTc+TvwMr5PsJKNPog==
-----END DSA PRIVATE KEY-----
[control+d]

7.- Establece los permisos correctos. En nuestro caso: 600

root@naia:~#chmod 600 .ssh/cloud-hosting-web.svn.key

8.- Configura con los datos precisos para conectar con la clave

root@naia:~#vi .ssh/config
Host = dh.tic.gl
Protocol = 2
IdentityFile = /root/.ssh/cloud-hosting-web.svn.key

9.- Si quieres guardar la contraseña de tu clave en un “llavero" puedes usar ssh-agent y ssh-add

root@naia:~#ssh-agent /bin/bash
root@naia:~#ssh-add .ssh/cloud-hosting-web.svn.key
Enter passphrase for .ssh/cloud-hosting-web.svn.key:
Identity added: .ssh/cloud-hosting-web.svn.key (.ssh/cloud-hosting- web.svn.key)

10.- Ya tenemos creado el repositorio que debe tener una estructura similar a esta:

root@naia:~#svn list svn+ssh://dhtic@dh.tic.gl/home/dhtic/cloud-hosting- web
api/
cloud/
core/
css/
html/
perl/
php/
sql/
xml/
Español
logo_inverse

...la página se está cargando...