Configurer le serveur Git avec SSH sur Ubuntu

Si vous avez un petit nombre de membres d’équipe travaillant sur certains projets, alors vous pouvez configurer un serveur Git via SSH sur votre bureau et travailler sur des projets en équipe très facilement. Vous n’avez pas besoin d’utiliser GitHub ou tout autre service dans ce cas. Le serveur Git basé sur SSH est vraiment facile à installer et à utiliser. Dans cet article, je vais vous montrer comment configurer un serveur Git avec SSH sur Ubuntu et comment l’utiliser. Alors, commençons.

Dans cette section, je vais vous montrer comment configurer un serveur Ubuntu comme un serveur Git accessible par SSH.
Premièrement, mettez à jour le cache du dépôt de paquets APT avec la commande suivante :

$ sudo apt update

Le cache du dépôt de paquets APT devrait être mis à jour.

Maintenant, installez le serveur OpenSSH et Git avec la commande suivante :

$ sudo apt install openssh-server git

Maintenant, appuyez sur Y puis sur <Enter> pour confirmer l’installation.

Le serveur OpenSSH et Git devraient être installés.

Maintenant, créez un nouvel utilisateur git avec la commande suivante :

$ sudo useradd –create-home –shell /bin/bash git

Tous les dépôts Git seront enregistrés dans le répertoire home de l’utilisateur git /home/git.

Maintenant, connectez-vous en tant qu’utilisateur git avec la commande suivante:

$ sudo su – git

Maintenant, créez un nouveau répertoire .ssh avec la commande suivante:

$ mkdir .ssh

Maintenant, autorisez uniquement l’utilisateur git à avoir des droits de lecture, d’écriture, d’exécution sur le répertoire .ssh/ comme suit:

$ chmod 700 .ssh/

Comme vous pouvez le voir, l’utilisateur git n’a que des autorisations de lecture (r), d’écriture (w), d’exécution (x) sur le répertoire .ssh/.

$ ls -ld .ssh/

Maintenant, créez un nouveau fichier vide .ssh/authorized_keys comme suit :

$ touch .ssh/authorized_keys

Only allow read and write to the file from the git user as follows:

$ chmod 600 .ssh/authorized_keys

Comme vous pouvez le constater, seul l’utilisateur git dispose des droits de lecture (r) et d’écriture (w) sur le fichier .ssh/authorized_keys.

Dans le fichier .ssh/authorized_keys, vous devez ajouter la clé publique des utilisateurs que vous souhaitez voir accéder aux dépôts Git sur le serveur Git.

Ajouter la clé publique du client au serveur Git:

Pour accéder aux dépôts Git sur le serveur Git, le client doit ajouter sa clé publique au serveur Git.

Le client peut générer une paire de clés publique-privée comme suit :

$ ssh-keygen

Appuyez sur <Enter>.

Pressez <Enter>.

Pressez <Enter>.

Pressez <Enter>

Maintenant, le client peut trouver sa clé publique comme suit :

$ cat ~/.ssh/id_rsa.pub

La clé publique du client devrait être imprimée. Maintenant, le client peut envoyer cette clé publique au gestionnaire (qui gère le serveur Git). Le gestionnaire peut alors ajouter la clé publique au serveur Git. Le client peut alors accéder au serveur Git.

Disons que le client a envoyé sa clé publique au gestionnaire du serveur Git. Le gestionnaire a téléchargé la clé publique dans le fichier /tmp/shovon-key.pub sur le serveur Git.

Maintenant, le gestionnaire du serveur Git peut ajouter la clé publique du client comme suit :

$ cat /tmp/shovon-key.pub >> ~/.ssh/authorized_keys

Maintenant, le fichier .ssh/authorized_keys doit contenir la clé publique du client.

Création de dépôts Git sur le serveur:

Les clients ne peuvent pas créer de nouveaux dépôts Git sur le serveur. Le gestionnaire du serveur Git doit créer un dépôt sur le serveur. Ensuite, les clients peuvent cloner, pousser/tirer depuis le référentiel.

Maintenant, créez un nouveau dépôt Git vide testrepo sur le serveur Git comme suit :

$ git init –bare testrepo

Maintenant, le client a seulement besoin de connaître l’adresse IP du serveur Git afin d’accéder au dépôt Git testrepo.

Le gestionnaire du serveur Git peut trouver cette information comme suit :

$ ip a

Comme vous pouvez le voir, l’adresse IP du serveur Git est 192.168.21.185. Maintenant, le gestionnaire du serveur peut l’indiquer aux clients qui vont travailler sur le projet.

Clonage du dépôt Git depuis le serveur:

Une fois que le client connaît l’adresse IP et le nom du dépôt Git, il peut le cloner sur son ordinateur comme suit :

$ git clone [email protected] :~/>testrepo

Maintenant, tapez oui et appuyez sur <Enter>. Vous devrez effectuer cette opération une seule fois.

Le dépôt Git testrepo doit être cloné depuis le serveur.

Un nouveau répertoire testrepo doit être créé.

Faire des changements et pousser les changements vers le serveur Git:

Maintenant, le client peut ajouter des commits au dépôt testrepo/ et pousser les changements vers le serveur Git.

$ cd testrepo/

$ echo « Hello world » > test.txt

$ git add .

$ git commit -m ‘initial commit’

$ git push origin

Ajouter un nouveau membre d’équipe :

Maintenant, disons que bob veut contribuer au dépôt Git testrepo.

Tout ce qu’il a à faire est de générer une paire de clés SSH et d’envoyer la clé publique au gestionnaire du serveur Git.

$ ssh-keygen

Une fois que le gestionnaire du serveur Git a la clé publique de bob, il peut la télécharger sur le serveur Git et l’ajouter au fichier .ssh/authorized_keys comme suit :

$ cat /tmp/bob-key.pub >> ~/.ssh/authorized_keys

Maintenant, bob peut cloner le dépôt Git testrepo depuis le serveur comme suit :

$ git clone [email protected]:~/testrepo

testrepo devrait être cloné.

Un nouveau répertoire testrepo doit être créé sur l’ordinateur de bob.

Maintenant, bob peut naviguer vers le dépôt Git comme suit :

$ cd testrepo/

Il devrait trouver quelques commits existants.

$ git log

Maintenant, bob peut faire son propre travail et le commiter. Ensuite, il faut pousser les modifications sur le serveur.

$ echo « Hello World 2 » >> test.txt

$ git add .
$ git commit -m ‘Changed message’

$ git push origin

Maintenant, d’autres personnes travaillant sur le même dépôt peuvent tirer les changements comme suit :

$ git pull origin

Il devrait trouver les commits que bob a effectués.

Donc, voilà comment configurer un serveur Git avec SSH sur Ubuntu et l’utiliser. Merci d’avoir lu cet article.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *