Instalando gitolite

Una vez que tenemos nuestro servidor de git funcionando de forma básica. Pero si queremos darle un uso serio y va a ser utilizado por más de una persona, lo mejor es añadirle un control de seguridad por usuarios. Para eso, podemos utilizar gitolite.
Los requisitos que hay que tener en el servidor:

  •  git 1.6.6+
  • perl 5.8.8+
  • openssh 5.0+
  • Un usuario dedicado para almacenar los repositorios. Como usuario ,vamos a utilizar el que usuario git creado anteriormente.

Cumpliendo estos requisitos, la instalación de gitolite es muy sencilla siguiendo los siguientes pasos:

  1. Nos logueamos con el usuario git.
    $ sudo su - git
    
  2. Hay que asegurarse que el archivo ~/.ssh/authorized_key no existe o está vacio.
    $ rm .ssh -rf
    
  3. Descargamos y configuramos gitolite:
    $ cd /home/git
    $ git clone git://github.com/sitaramc/gitolite
    $ mkdir bin -p
    $ gitolite/install -to ./bin
    $ bin/gitolite setup -pk git.pub
    

    Lo que estamos haciendo es lo siguiente, nos descargamos el proyecto de github, creamos una carpeta bin, donde se van a guardar los ejecutables de gitolite. Yo prefiero hacerlo dentro del home de git, para no guarrear mucho el servidor. Con el comando gitolite/install -to ./bin le indicamos que la instalación la haga en la carpeta que acabamos de crear. Por último, al hacer setup, configura automáticamente gitolite, con -pk git.pub le estamos diciendo que utilice el archivo git.pub, que contiene una clave pública, para hacer el logueo de usuario administrador. Este archivo con la clave pública, deberemos crearlo y pasarselo nosotros. Con esto ya tenemos gitolite configurado para empezar a trabajar.

Creación de la llave pública y privada

Para crear el par llave pública/privada, es tan sencillo como ejecutar:

$ ssh-keygen -t rsa

Nos preguntará donde queremos guardar la clave privada. En nuestro le ponemos el nombre git, para que lo haga en el directorio actual. Nos pedirá una passphrase para proteger la clave privada, en mi caso prefiero dejarla vacia. Nos creará dos archivos nuevo, uno llamado git a secas, que es la clave privada y otro llamado git.pub que es la clave pública. Esta clave pública es la que utilizamos en el apartado anterior. La clave privada, la tendremos que poner en el cliente para poder acceder a la configuración administrativa de gitolite.

Configuración de usuarios y repositorios

Ahora en el cliente, con nuestra clave privada, normalmente en ~/.ssh/id_rsa, hacemos un clone del panel administrativo de gitolite:

$ git clone git@host:gitolite-admin

Si todo está correctamente, hará el pull del proyecto directamente, sin pedir ninguna contraseña. En caso de que nos pida una contraseña, algo estamos haciendo mal con las claves privada/publica.

Dentro del proyecto gitolite-admin hay dos carpetas, config y keydir. En config tenemos el fichero de configuración de gitolite y en keydir, tendremos que poner las claves públicas de los usuarios.

Para configurar gitolite, os dejo el enlace de  la documentación oficial y de un libro de git que a mi me ha servido de mucha ayuda.
Una vez hecho todos los cambios necesarios, haremos un push al servidor y gitolite se encargará automaticamente de actualizar la configuración y el acceso a través de las claves.
Ahora desde nuestro cliente,  podremos ver los repositorios a los que tenemos acceso, así como los permisos:

ssh git@host info

Si pide contraseña, esque hay algún problema con las claves. Si muestra la informaci´no, todo ha ido perfecto y ya podremos trabajar tranquilamente, teniendo el control de seguridad extra, en nuestros repositorios.

« »