Un servidor Git aloja el repositorio de un proyecto, que contiene el código fuente y otros archivos principales. Si bien, en su mayor parte, puede confiar en los servicios de alojamiento de Git mundialmente conocidos como GitHub, en algunos casos, es mejor alojar su servidor Git personal para mayor privacidad, personalización y seguridad.
Aprendamos cómo puede configurar un servidor Git privado en Linux.
Requisitos previos para configurar un servidor Git
Antes de comenzar a configurar su servidor Git privado, debe tener acceso a una máquina de repuesto o debe estar suscrito a proveedores de la nube. Esto es importante ya que configurará la máquina de repuesto para que actúe como un servidor Git al que se conectará desde su máquina local y realizará operaciones Git.
Si bien no existen requisitos de sistema bien definidos, un gigabyte de RAM debería ser suficiente para que el servidor Git funcione. Además, asegúrese de tener una distribución de Linux en funcionamiento en la máquina.
Paso 1: descargue e instale Git en el servidor Linux
No hace falta decir que debe tener Git instalado en su servidor Linux como paso preliminar. Inicie una terminal y use el administrador de paquetes de su distribución de Linux para instalar Git:
En derivados de Debian/Ubuntu:
sudo apto Instalar en pc git
En Distribuciones basadas en arco:
sudo pacman -S git
En CentOS/RHEL/Fedora:
sudo dnf Instalar en pc git
Una vez que Git esté instalado en su sistema, continúe con los siguientes pasos para configurar su sistema Linux para alojar sus repositorios Git como un servidor Git.
Paso 2: configurar una cuenta de usuario de Git
Conéctese a su servidor Linux a través de SSH, RDP o cualquier otro protocolo de acceso remoto. O, si está utilizando una computadora de repuesto como servidor, enciéndala y cree una nueva cuenta de usuario para manejar sus repositorios.
nombre de usuario ssh@Dirección
sudo useradd git
Después de agregar el nuevo usuario, cambie a él usando el su dominio:
su git
Creando un dedicado git La cuenta de usuario es un protocolo de seguridad que garantiza que los clientes que se conectan a su servidor Git tendrán visibilidad y acceso limitados a los recursos de la máquina. Esto le permite colaborar de forma segura en proyectos grupales en los que varios miembros del equipo accederán a su servidor.
Paso 3: cree el directorio .ssh y agregue claves autorizadas
Creando un .ssh El directorio es necesario para almacenar claves públicas y otros datos esenciales que determinarán quién tiene acceso a este servidor Git. Para empezar, inicie sesión en la cuenta de usuario de git que creó anteriormente, cree el directorio .ssh y restrinja el acceso solo al usuario de git:
ssh git@Dirección
mkdir.ssh
chmod 700 .ssh/
toque .ssh/authorized_keys
Asegure los permisos de acceso al directorio usando el chmod comando para asegurarse de que nadie, excepto usted, pueda realizar cambios en él. Muévete hacia el .ssh directorio y cree un nuevo archivo "authorized_keys" usando el tocar dominio.
discos compactos.ssh
ssh-keygen -t rsa #solo ejecute este comando si NO tiene un archivo id_rsa.pub
gatoid_rsa.pub
Deberá actualizar este archivo con las claves públicas SSH de los clientes a los que desea dar acceso al servidor Git. Suspender la sesión SSH y abrir el .ssh/id_rsa.pub archivo en su máquina local utilizando un editor de texto o el comando del gato. Este archivo contiene su clave cifrada pública que, cuando se escribe en el archivo authorized_keys, le otorgará acceso al servidor Git sin contraseña.
discos compactos.ssh
vi claves_autorizadas
Copie la clave pública y active una nueva conexión SSH al servidor Git. Muévete hacia el .ssh directorio, abra el archivo authorized_keys con un editor de texto y pegue la clave pública. Guardar los cambios y salir.
A partir de ese momento, debería poder conectarse al servidor sin ninguna contraseña. Repita este paso para cada máquina que se conectará al servidor.
Paso 4: cree un directorio para almacenar todos sus repositorios
Acceda al servidor Linux y cree un directorio o use uno incorporado como directorio raíz. Tenga en cuenta que este es el directorio en el que se almacenarán todos sus repositorios. Esta es una buena práctica en aras de una organización más ordenada de los proyectos.
mkdir nombre_directorio
Después de crear el directorio, continúe con el paso final de esta guía para terminar de configurar el servidor Git.
Paso 5: Inicie el desarrollo agregando un nuevo proyecto
Ya prácticamente ha terminado de configurar el servidor Git. Ahora solo necesita iniciar el desarrollo inicializando los repositorios y agregando el origen remoto a su máquina local. Muévase al directorio principal usando el discos compactos comando y crear un .git directorio del proyecto:
discos compactos directorio de padres
mkdirnuevo proyecto.git
Ahora, inicialice un repositorio de git desnudo:
iniciar git --desnudo
Con el repositorio inicializado, es hora de agregar el origen remoto en su máquina local:
git remoto agregar nombre de origen git@Dirección:nuevo_proyecto.git
Eso es todo lo que necesitaba hacer en el lado del servidor. Ahora cualquier cliente autenticado puede realizar operaciones regulares de Git como empujar, extraer, fusionar, clonar y más. Para iniciar nuevos proyectos, deberá repetir este paso cada vez que cree un nuevo proyecto.
Pruebe su funcionalidad realizando un git push:
toque el archivo de prueba
git agregar archivo de prueba
git cometer -m "archivo de prueba"
maestro de nombres git push
git clon git@dirección: nuevo_proyecto.git
Su archivo se enviará con éxito al origen remoto. Para verificar si la operación de inserción funcionó, puede clonar el repositorio y debe encontrar el archivo de prueba en el repositorio.
Consejos de seguridad para su servidor Git
Con el servidor Git en funcionamiento, debe prestar mucha atención a su estado de seguridad, ya que es su servidor personal y es su exclusiva responsabilidad mantenerlo y protegerlo de amenazas Algunas de las mejores prácticas de seguridad a adoptar son:
- Deshabilitar inicio de sesión con contraseña
- Cambie el shell predeterminado a git-shell. Esto restringe que el usuario que inició sesión emita cualquier comando que no sea git
- Usar un puerto personalizado para SSH
- Deshabilitar inicio de sesión de usuario raíz
- Copia de seguridad de datos con regularidad
Hay muchas configuraciones de seguridad y medidas de seguridad que puede implementar en su servidor Linux para protegerlo de los atacantes y evitar el acceso no autorizado.