Servidor Git privado en Linux

Hay varias formas de alojar tu propio servidor Git. Esta guía cubre la opción más sencilla — un repositorio bare accedido por SSH — que funciona bien para equipos pequeños de confianza. Para una interfaz web completa con pull requests y gestión de issues, consulta la sección de alternativas modernas al final.

Repositorio bare por SSH

Todos los colaboradores necesitan acceso SSH al servidor y Git instalado en ambos lados (apt install git / dnf install git).

Preparar el servidor

Crear un grupo para los colaboradores:

groupadd git-users

Crear un usuario del sistema para cada colaborador y asignarlo al grupo:

useradd -m -g users -G git-users -s /bin/bash contributor1
passwd contributor1

Repetir para cada colaborador.

Crear el repositorio

mkdir -p /srv/git-repos
git init --bare /srv/git-repos/project.git
chown -R root:git-users /srv/git-repos/
chmod -R g+rwX /srv/git-repos/

g+rwX da al grupo acceso de lectura y escritura, y establece el bit setgid en los directorios para que los archivos nuevos hereden el grupo automáticamente.

Clonar y hacer push

Desde la máquina de un colaborador, clonar el repositorio:

git clone contributor1@tu-servidor:/srv/git-repos/project.git

O añadirlo como remoto a un repositorio local existente:

git remote add origin contributor1@tu-servidor:/srv/git-repos/project.git
git push -u origin main

Autenticación por clave SSH (recomendado)

El acceso por contraseña funciona, pero las claves SSH son más seguras y permiten la automatización. En la máquina de cada colaborador:

ssh-keygen -t ed25519 -C "contributor1"
ssh-copy-id contributor1@tu-servidor

Alternativas modernas — Gitea y Forgejo

Si necesitas una interfaz web con pull requests, gestión de issues, administración de usuarios y navegación de repositorios, las dos opciones líderes de alojamiento propio son:

Ambos usan por debajo el mismo flujo de trabajo Git por SSH, así que se puede empezar con el enfoque de repositorio bare descrito arriba y migrar a Gitea/Forgejo más adelante sin perder el historial.


Última actualización: 26 de junio de 2026

Por: Guillermo Garron