Recientemente hemos instalado GIT en nuestro hosting para empezar a controlar las versiones de nuestro software de forma más eficiente.
Aunque ya había usado GIT desde Github y bitbucket, no lo había instalado nunca en un servidor y me dije, «esta es la mía…».
De paso, aprovecho para escribir estas líneas, recapitular lo que he hecho y añadir unas líneas muy, muy básicas del uso de GIT. Empecemos….
Pasos previos
Cliente Local
Lógicamente, para poder acceder a los comandos de GIT, tenemos que tener instalado en local GIT, El sitio oficial de GIT es http://git-scm.com/. Para instalar el cliente de Windows, redirige a http://msysgit.github.com/.
En el caso de instalar el cliente en Windows, tenemos un plus adicional, nos pregunta si quieremos instalar diversos comandos típicos de Linux, lo cual es muy útil, así como una shell bash para Windows, git_bash. En este artículo usaré algunos de ellos, por comodidad.
Acceso por SSH.
Aunque GIT se puede usar con otros protocolos, el más conveniente es SSH. Nos permitirá limitar el acceso al repositorio a solo aquellas personas cuyas claves publicas hayamos instalado en el servidor, sin necesidad de crear usuarios específicos en nuestro servidor.
Vamos a empezar por ver el proceso de creación de las claves SSH.
No me propongo explicar cómo funciona el tema de las claves publicas porque queda fuera del alcance artículo, pero si alguien lo necesita, por aquí cuentan algo: http://git-scm.com/book/en/Git-on-the-Server-Generating-Your-SSH-Public-Key
Es necesario saber que en Ubuntu se usa openssh, con lo que las claves no son compatibles claves SSH como las generadas desde Putty… pero podemos convertirlas…. Tenemos varias posibilidades para usar SSH correctamente, pero la mejor es la última reseñada.
1. Podemos generar las claves en ubuntu:
DESDE UBUNTU
- Generar las claves openssh en Ubuntu, ejecutar ssh-keygen para generar una par de claves.
- Meter la clave en el almacén: cat clave.publica >> ~/.ssh/authorized_keys
- Copiar la clave privada al Windows:
scp GIT@123.123.123.123:/home/GIT/kk/clave.privada c:windowstemp
DESDE WINDOWS
Como hemos dicho antes, putty necesita claves de tipo SSH no openSSH. Para convertir la clave generada en Ubuntu,
ejecutar puttygen
hacer un «load» de la clave privada que hemos copiado en Windows.
Al hacerlo, puttygen lo reconoce como openssh y la importa. Tenemos que guardarla (como SSH) para usarla desde el putty
A partir de aquí, ya podemos usar putty dándole la clave privada ssh
2. Otra posibilidad es generarla desde Windows
Podemos generar claves SSH con puttygen
Si generamos con puttygen y guardamos las claves, las guarda como SSH pero muestra la clave pública en formato openSSH en la propia ventana:
Podemos copiar esta clave pública y ponerla en el fichero ~/.ssh/authorized_keys
También es posible subir la clave pública (o privada) generada desde Windows y convertirla y almacenarla en Ubuntu de esta forma:
ssh-keygen -i -f clave.pub >>.ssh/authorized_keys
3. La mejor opción es usar el ssh-keygen que trae el cliente para Windows de http://msysGIT.GIThub.com/,:
Arrancar GIT_bash
Generar clave: ssh-keygen -t rsa -C «pepito@sevidor.com»
Importante para Windows: este comando crea las claves en %USERPROFILE%/.ssh
Importante: el nombre del archivo de clave (privada) tiene que ser id_rsa.
- Esto nos habrá generado un par de claves openSSH
- Lo siguiente será subir la clave publica al servidor y, en el caso de Linux, añadirla en ~/.ssh/authorized_keys: cat id_rsa.pub >> ~/.ssh/authorized_keys
- Si además queremos usarla desde putty, tenemos que convertir la clave privada al formato de putty:
- Entrar en puttygen
- En el menu, conversions, import key
- Elegimos nuestro id_rsa
- Damos a «save private key» y le damos un nombre
- Este es el que debemos usar desde putty.
Instalación de GIT en UBUNTU
Para instalar GIT tenemos dos posibilidades:
- Usar un PPA(<http://www.makeuseof.com/tag/ubuntu-ppa-technology-explained/> )
- Ir por los repositorios oficiales
1. PPA
Una forma de actualizar/obtener el software en Ubuntu es a través de los repositorios oficiales. Estos son actualizados cada 6 meses, que es cuando se libera una nueva versión del sistema operativo. Actualizar a través del repositorio oficial es muy cómodo, evita tener que ir buscando el software a cada uno de los proveedores y además, pasa el filtro oficial del equipo de Ubuntu. Pero claro, cada 6 meses.
Si tu software favorito ha sido actualizado, tienes que esperar a la liberación semestral para instalarlo desde el Ubuntu Software Center. A no ser que uses un PPA, un Personal Package Archives, que es la forma de acceder rápidamente a la última versión publicada.
Un PPA suele centrarse en un único paquete de software. Te permite, por ejemplo, instalar software que aun no ha sido liberado.
Para usarlo, lo primero que se hace es añadir el repositorio del programa al «sources.list». De esta forma obtendremos el programa y además, obtendremos las futuras actualizaciones, de la misma forma que el resto del software.
Por lo tanto los pasos para añadir la última versión de GIT serian los siguientes:
- Añadimos el repositorio
sudo add-apt-repository ppa:git-core/ppa
- Hacemos un update de APT
sudo apt-get update
- instalamos el paquete GIT-core:
sudo apt-get install git-core
Y ya está. Mucho más fácil de hacer que de explicar.
2. Repositorio por defecto
Simplemente tenemos que hacer lo siguiente:
sudo apt-get install git-core
Crear un usuario con acceso SSH dedicado para GIT
Crear el usuario, por ejemplo “GIT”
sudo adduser git
Ahora necesitamos que los desarrolladores que vayan a usarlo nos pasen sus claves públicas para añadirlas al ssh.
Tienen esta forma
cat /tmp/id_rsa.pepe.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCB007n/ww+ouN4gSLKssMxXnBOvf9LGt4LojG6rs6hPB09j9R/T17/x4lhJA0F3FR1rP6kYBRsWj2aThGw6HXLm9/5zytK6Ztg3RPKK+4kYjh6541NYsnEAZuXz0jTTyAUfrtU3Z5E003C4oxOj6H0rfIF1kKI9MAQLMdpGW1GYEIgS9EzSdfd8AcCIicTDWbqLAcU4UpkaX8KyGlLwsNuuGztobF8m72ALC/nLF6JLtPofwFBlgc+myivO7TCUSBdLQlgMVOFq1I2uPWQOkOWQAHukEOmfjy2jctxSDBQ220ymjaNsHT4kgtZg2AYYgPq dAv8JggJICUvax2T9va5 gsg-keypair
Tenemos que añadir todas al fichero .ssh/authorized_keys
$ cat /tmp/id_rsa.pepe.pub >> ~/.ssh/authorized_keys
$ cat /tmp/id_rsa.maria.pub >> ~/.ssh/authorized_keys
$ cat /tmp/id_rsa.javineitor.pub >> ~/.ssh/authorized_keys
Ya tenemos todo listo, ahora ya podemos crear el repositorio
- cd $someWhere
- mkdir repositoriosGIT
- cd !$
- mkdir proyecto1.GIT
- cd !$
- git –bare init
A partir de aquí, cada desarrollador tendrá que «bajarse» el repositorio.
Pero, como esto se está alargando, lo veremos en una segunda entrada…
Hola, gracias por el tutorial, estaba siguiendo la instalación y se cae al agregar el repositorio, esto es porque no va git en mayúsculas, lo correcto es sudo add-apt-repository ppa:git-core/ppa. Lo mismo con la instalación, debe ser sudo apt-get install git-core.
Una consulta, sabes donde queda almacenado git, estoy tratando de instalar SmartGit y me pide el directorio de instalación de git.
Gracias nuevamente.
Hola Victor,
Gracias por los apuntes, efectivamente se nos han colado los ‘GIT’ donde debían ir ‘git’.
Ahora mismo no tengo acceso a la máquina con la que hicimos las pruebas, pero si haces un ‘which git’ te debería dar la ruta al ejecutable que usa.
Aparte del which, si te pones en el directorio ‘/’ y haces un ‘sudo find . -name «git*»‘ te debería sacar el directorio de instalación.
En un RedHat me dice que el ‘git-core’ está en : /usr/libexec/
En un Ubuntu 64 me sale en : /usr/lib/
Un saludo.