paint-brush
Una guía sobre cómo alojar su propio servidor Git con Raspberry Pipor@m108falcon
15,222 lecturas
15,222 lecturas

Una guía sobre cómo alojar su propio servidor Git con Raspberry Pi

por Mridul Wadhwa2022/01/19
Read on Terminal Reader
Read this story w/o Javascript

Demasiado Largo; Para Leer

Alojar su propio servidor git puede ser una experiencia de aprendizaje divertida que se utiliza para comprender los entresijos de lo que implica mantener una base de código en entornos privados. Puede configurar un servidor git privado que funcione en poco tiempo siguiendo la guía si tiene una Raspberry-Pi a mano. También puede configurar en máquinas VM o AWS o cualquier servicio de alojamiento con Linux. NOTA: Esta guía solo muestra la configuración básica, los mecanismos de seguridad con respecto a los privilegios de usuario y las restricciones de compromiso que aún deben configurarse pero que están fuera del alcance de este artículo.

Companies Mentioned

Mention Thumbnail
Mention Thumbnail
featured image - Una guía sobre cómo alojar su propio servidor Git con Raspberry Pi
Mridul Wadhwa HackerNoon profile picture



Alojar su propio servidor git puede ser una experiencia de aprendizaje divertida que se utiliza para comprender los entresijos de lo que implica mantener una base de código en entornos privados. Puede configurar un servidor git privado que funcione en poco tiempo siguiendo la guía si tiene una Raspberry-Pi a mano.


También puede configurar en máquinas VM o AWS o cualquier servicio de alojamiento con Linux.


NOTA: Esta guía solo muestra la configuración básica, los mecanismos de seguridad con respecto a los privilegios de usuario y las restricciones de compromiso que aún deben configurarse pero que están fuera del alcance de este artículo.




¡Vámonos! Debemos….

PASO 1: Configuración de un nuevo usuario para manejar los repositorios de Git

Por motivos de seguridad y facilidad de uso, configuraré claves SSH para autenticación b/w servidor y clientes a través de la red.


a) Inicie sesión en su usuario pi existente en raspberry-pi y configure un nuevo usuario para su servidor git.


 pi@hostname:~ $ sudo useradd -s /bin/bash -m [username]


Nombraré a mi usuario git y me referiré a él en el resto del artículo.


El comando anterior agrega un nuevo usuario, -s indica que se usará el shell y -m indica que se debe crear el directorio de inicio.


b) Dale la contraseña a tu nuevo usuario:

 pi@hostname:~ $ sudo passwd git


c) Complete la contraseña de su elección y cambie el usuario a git y cd en el directorio de inicio de git.

 pi@hostname:~ $ su git


d) Complete la contraseña.

 git@hostname:home/pi $


e ) Y luego escriba cd para ir al directorio de inicio de git.


PASO 2: Configurar la autenticación de clave SSH para Git


a) Desde su máquina cliente, ssh en git para verificar que puede iniciar sesión de forma remota en el usuario.


 m108falcon@quadre:~ $ ssh git@[ipaddr]


b) Si tiene configurado el puerto 22 predeterminado y el usuario está configurado como activo, se le solicitará la contraseña e iniciar sesión. Ingrese las credenciales e iniciará sesión en el usuario git en su raspberry-pi.


inicio de sesión autenticado por contraseña

c) Abra una nueva pestaña de terminal y haga lo siguiente en la máquina cliente.

 m108falcon@quadre:~ $ ssh-keygen


d) Siga los pasos, asigne un nombre único a la clave y agregue una contraseña si lo desea.


e) Una vez configuradas las claves, envíe su clave de publicación de identificación al servidor

 m108falcon@quadre:~ $ ssh-copy-id -i [location]/unique_key.pub git@[ipaddr]


f) Intente iniciar sesión en el usuario de git, si aún se le solicita que inicie sesión con una contraseña, entonces:


 m108falcon@quadre:~ $ ssh-agent [your shell] && ssh-add [location]/unique_key

si inició sesión sin contraseña, puede ignorar el comando anterior.

iniciar sesión con autenticación basada en clave ssh


PASO 3: Configuración de repositorios

Frambuesa-Pi


a) Dentro de su raspberry-pi conectado como git, cree un directorio para almacenar todos los repositorios de git:

 git@kleintragbar:~ $ mkdir [directory]


b) Nombré el mío srv . Dentro de srv, cree un directorio para el proyecto que desea administrar que termine con .git . Esto se debe a que .git ayuda a Linux a diferenciar los directorios estándar en b/n y los repositorios administrados por git.

 git@kleintragbar:~ $ cd srv git@kleintragbar:~/srv $ mkdir [nameofyourrepo].git


c) Llamé al mío traceviz.git y me referiré a él de ahora en adelante.

Inicialice el repositorio desnudo. Se necesita Bare porque los repositorios remotos necesitan realizar un seguimiento de los cambios y no tener árboles de trabajo.


 git@kleintragbar:~/srv/traceviz.git $ git init --bare


Máquina local

a) Vaya al directorio de su proyecto e inicialice el repositorio de git. Agregue un archivo y realice la confirmación inicial.

 m108falcon@quadre:~ $ cd Projects/traceroute_viz m108falcon@quadre:~/Projects/traceroute_viz $ git init m108falcon@quadre:~/Projects/traceroute_viz $ git add README.md m108falcon@quadre:~/Projects/traceroute_viz $ git commit -m 'README'


b) Agregue una dirección remota a su repositorio git.

 m108falcon@quadre:~/Projects/traceroute_viz $ git remote add origin ssh://[email protected]/home/git/srv/traceviz.git


c) Agregue la dirección de su repositorio remoto después de ssh://

d) Empuje al servidor remoto.

 m108falcon@quadre:~/Projects/traceroute_viz $ git push -u ssh://[email protected]/home/git/srv/traceviz.git


Eso concluye la creación de repositorios para empujar código. :)


Prueba del código insertado mediante clonación

a) En la máquina cliente, vaya a un directorio diferente al de su proyecto y clone el repositorio remoto.


 m108falcon@quadre:~/Downloads $ git clone [email protected]:/home/git/srv/traceroute_viz.git


Y encontrarás este error:

advertencia

b) Para solucionarlo, vaya a su máquina remota y modifique el archivo HEAD en el servidor git.

contenido del repositorio remoto

c) El contenido original de HEAD dice:

contenido original

d) Y cambiar de maestro a principal. Puede hacerlo simplemente editando archivos con su editor favorito (nano, vim, emacs o cualquier otro de su elección).

archivo modificado

e) Elimine su repositorio clonado anterior y clone uno nuevo y obtendrá todos los archivos que necesita.

Ahora, realmente está configurado con un repositorio remoto local propio. Diviértete administrando el código con tus amigos/compañeros de cuarto.

¡Mis mejores deseos! 👍