Un serveur Git héberge le référentiel d'un projet, qui contient le code source et d'autres fichiers principaux. Alors que, pour la plupart, vous pouvez compter sur des services d'hébergement Git mondialement connus comme GitHub, dans certains cas, il est préférable d'héberger votre serveur Git personnel pour plus de confidentialité, de personnalisation et Sécurité.
Voyons comment configurer un serveur Git privé sous Linux.
Prérequis pour configurer un serveur Git
Avant de commencer à configurer votre serveur Git privé, vous devez avoir accès à une machine de rechange ou être abonné à des fournisseurs de cloud. Ceci est important car vous configurerez la machine de secours pour qu'elle agisse comme un serveur Git auquel vous vous connecterez à partir de votre machine locale et effectuerez des opérations Git.
Bien qu'il n'y ait pas d'exigences système bien définies, un gigaoctet de RAM devrait suffire pour que le serveur Git soit fonctionnel. De plus, assurez-vous d'avoir une distribution Linux en cours d'exécution sur la machine.
Étape 1: Téléchargez et installez Git sur le serveur Linux
Inutile de dire que vous devez d'abord installer Git sur votre serveur Linux. Lancez un terminal et utilisez le gestionnaire de packages de votre distribution Linux pour installer Git :
Sur les dérivés Debian/Ubuntu :
sudo apt installer git
Sur Distributions basées sur l'architecture:
sudo pacman -S git
Sur CentOS/RHEL/Fedora :
sudo dnf installer git
Une fois Git installé sur votre système, passez aux étapes suivantes pour configurer votre système Linux afin d'héberger vos référentiels Git en tant que serveur Git.
Étape 2: Configurer un compte utilisateur Git
Connectez-vous à votre serveur Linux via SSH, RDP ou tout autre protocole d'accès à distance. Ou, si vous utilisez un ordinateur de rechange comme serveur, allumez-le et créez un nouveau compte utilisateur pour gérer vos référentiels.
nom d'utilisateur ssh@adresse
sudo useradd git
Une fois le nouvel utilisateur ajouté, basculez vers celui-ci à l'aide de la su commande:
Su git
Création d'un espace dédié git Le compte utilisateur est un protocole de sécurité qui garantit que les clients se connectant à votre serveur Git auront une visibilité et un accès limités aux ressources de la machine. Cela vous permet de collaborer en toute sécurité dans des projets de groupe où plusieurs membres de l'équipe accéderont à votre serveur.
Étape 3: Créer le répertoire .ssh et ajouter des clés autorisées
Créer un .ssh est nécessaire pour stocker les clés publiques et d'autres données essentielles qui détermineront qui aura accès à ce serveur Git. Pour commencer, connectez-vous au compte utilisateur git que vous avez créé précédemment, créez le répertoire .ssh et limitez l'accès à l'utilisateur git uniquement :
ssh git@adresse
mkdir.ssh
chmod 700 .ssh/
touchez .ssh/authorized_keys
Sécurisez les autorisations d'accès au répertoire à l'aide de chmod pour vous assurer que personne d'autre que vous ne peut y apporter de modifications. Emménagez dans le .ssh répertoire et créez un nouveau fichier "authorized_keys" en utilisant le toucher commande.
CD.ssh
ssh-keygen -t rsa #n'exécutez cette commande que si vous N'AVEZ PAS de fichier id_rsa.pub
chatid_rsa.pub
Vous devrez mettre à jour ce fichier avec les clés publiques SSH des clients auxquels vous souhaitez donner accès au serveur Git. Suspendez la session SSH et ouvrez le .ssh/id_rsa.pub fichier sur votre ordinateur local à l'aide d'un éditeur de texte ou la commande du chat. Ce fichier contient votre clé publique cryptée qui, une fois écrite dans le fichier authorized_keys, vous donnera accès au serveur Git sans mot de passe.
CD.ssh
vi clés_autorisées
Copiez la clé publique et lancez une nouvelle connexion SSH au serveur Git. Emménagez dans le .ssh répertoire, ouvrez le fichier authorized_keys avec un éditeur de texte et collez la clé publique. Enregistrer les modifications et quitter.
Dès lors, vous devriez pouvoir vous connecter au serveur sans mot de passe. Répétez cette étape pour chaque machine qui se connectera au serveur.
Étape 4: Créer un répertoire pour stocker tous vos référentiels
Accédez au serveur Linux et créez un répertoire ou utilisez-en un intégré comme répertoire racine. Gardez à l'esprit qu'il s'agit du répertoire dans lequel tous vos référentiels seront stockés. C'est une bonne pratique pour une meilleure organisation des projets.
mkdir nom_répertoire
Après avoir créé le répertoire, passez à la dernière étape de ce guide pour terminer la configuration du serveur Git.
Étape 5: Lancez le développement en ajoutant un nouveau projet
Vous avez maintenant pratiquement terminé la configuration du serveur Git. Il ne vous reste plus qu'à lancer le développement en initialisant les référentiels et en ajoutant l'origine distante à votre machine locale. Déplacez-vous dans le répertoire parent à l'aide de la CD commande et créer un .git répertoire du projet :
CD Dossier Parent
mkdirnouveau projet.git
Maintenant, initialisez un dépôt git nu :
git init --nu
Une fois le référentiel initialisé, il est temps d'ajouter l'origine distante sur votre machine locale :
git remote ajouter le nom d'origine git@adresse:nouveau_projet.git
C'est tout ce que vous deviez faire du côté serveur. Désormais, tout client authentifié peut effectuer des opérations Git régulières telles que pousser, tirer, fusionner, cloner, etc. Pour démarrer de nouveaux projets, vous devrez répéter cette étape chaque fois que vous créez un nouveau projet.
Testez sa fonctionnalité en effectuant un git push :
toucher le fichier de test
git ajouter un fichier de test
git commettre -m "fichier d'essai"
git push nom maître
git cloner git@adresse: nouveau_projet.git
Votre fichier sera poussé avec succès vers l'origine distante. Pour vérifier si l'opération push a fonctionné, vous pouvez cloner le référentiel et vous devriez trouver le fichier de test dans le référentiel.
Conseils de sécurité pour votre serveur Git
Avec le serveur Git opérationnel, vous devez porter une attention particulière à sa stature de sécurité car il est votre serveur personnel et il est de votre seule responsabilité de le maintenir et de le protéger des des menaces. Certaines des meilleures pratiques de sécurité à adopter sont :
- Désactiver la connexion par mot de passe
- Remplacez le shell par défaut par git-shell. Cela empêche l'utilisateur connecté d'émettre une commande non-git
- Utiliser un port personnalisé pour SSH
- Désactiver la connexion de l'utilisateur root
- Sauvegarder régulièrement les données
Il existe de nombreuses configurations et mesures de sécurité de ce type que vous pouvez mettre en œuvre sur votre serveur Linux pour le protéger des attaquants et empêcher tout accès non autorisé.