Maison  >  Article  >  Tutoriel système  >  Construire un serveur Git sous CentOS

Construire un serveur Git sous CentOS

王林
王林avant
2024-04-15 19:13:011127parcourir

Construire un serveur Git sous CentOS

1. Vous devez d'abord installer Git, vous pouvez utiliser yum source pour l'installer en ligne :
[root@localhost Desktop]# yum install -y git
2. Créez un utilisateur git pour exécuter le service git
adduser git
3. Initialiser le référentiel git :

Ici, nous choisissons /data/git/learngit.git comme référentiel git

[root@localhost git]# git init --bare learngit.git
Initialized empty Git repository in /data/git/learngit.git/

L'exécution de la commande ci-dessus créera un entrepôt nu. L'entrepôt nu n'a pas d'espace de travail. Étant donné que l'entrepôt Git sur le serveur est uniquement destiné au partage, les utilisateurs ne sont pas autorisés à se connecter directement au serveur pour modifier l'espace de travail. L'entrepôt Git sur le serveur commence généralement par la fin .git. Ensuite, changez le propriétaire en git :

[root@localhost git]# chown git:git learngit.git
4. Voilà, le serveur Git est presque prêt.

Clonons l'entrepôt distant sur le client

Zhu@XXX /E/testgit/8.34
$ git clone git@192.168.8.34:/data/git/learngit.git
Cloning into 'learngit'...
The authenticity of host '192.168.8.34 (192.168.8.34)' can't be established.
RSA key fingerprint is 2b:55:45:e7:4c:29:cc:05:33:78:03:bd:a8:cd:08:9d.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.8.34' (RSA) to the list of known hosts.
git@192.168.8.34's password:

Deux points à noter ici : Premièrement, lorsque vous utilisez la commande clone ou push de Git pour vous connecter à GitHub pour la première fois, vous recevrez un avertissement :

The authenticity of host 'github.com (xx.xx.xx.xx)' can't be established.
RSA key fingerprint is xx.xx.xx.xx.xx.
Are you sure you want to continue connecting (yes/no)?

En effet, Git utilise une connexion SSH et lorsque la connexion SSH vérifie pour la première fois la clé du serveur GitHub, vous devez confirmer si les informations d'empreinte digitale de la clé GitHub proviennent réellement du serveur GitHub. Git affichera un avertissement vous indiquant que la clé GitHub a été ajoutée à une liste de confiance sur cette machine :

Warning: Permanently added 'github.com' (RSA) to the list of known hosts.

Cet avertissement n'apparaîtra qu'une seule fois et il n'y aura aucun avertissement pour les opérations ultérieures. Si vous craignez vraiment que quelqu'un usurpe l'identité du serveur GitHub, avant de saisir oui, vous pouvez vérifier si les informations d'empreinte digitale de la clé RSA de GitHub sont cohérentes avec celles fournies par la connexion SSH. Deuxièmement, vous êtes invité à saisir un mot de passe pour cloner. Bien sûr, si vous connaissez le mot de passe, vous pouvez saisir le mot de passe pour cloner, mais la méthode la plus courante consiste à utiliser la clé publique SSH pour terminer la vérification.

5. Créer une clé SSH

Tout d'abord, vérifiez s'il existe un répertoire .ssh dans le répertoire personnel de l'utilisateur. Si tel est le cas, vérifiez s'il y a deux fichiers, id_rsa et id_rsa.pub, dans ce répertoire. S'ils existent déjà, vous pouvez passer directement au suivant. étape.

Sinon, ouvrez Shell (ouvrez Git Bash sous Windows) et créez la clé SSH :

$ ssh-keygen -t rsa -C "youremail@example.com"

Vous devez remplacer l'adresse e-mail par votre propre adresse e-mail, puis appuyer complètement sur Entrée et utiliser la valeur par défaut. Étant donné que cette clé n'est pas utilisée à des fins militaires, il n'est pas nécessaire de définir un mot de passe. Si tout se passe bien, vous pouvez trouver le répertoire .ssh dans le répertoire personnel de l'utilisateur. Il existe deux fichiers, id_rsa et id_rsa.pub. Ces deux fichiers constituent la paire de clés SSH. id_rsa est la clé privée et ne peut pas être divulguée. Il s'agit d'une clé publique qui peut être partagée avec n'importe qui en toute confiance.

6. Activez l'authentification RSA sur le serveur Git

Ensuite, vous pouvez ajouter votre clé publique au serveur Git pour vérifier vos informations.

Sur le serveur Git, vous devez d'abord activer l'authentification RSA dans /etc/ssh/sshd_config, soit :

1.RSAAuthentication yes
2.PubkeyAuthentication yes
3.AuthorizedKeysFile .ssh/authorized_keys

Ici, nous pouvons voir que la clé publique est stockée dans le fichier .ssh/authorized_keys. Nous créons donc le répertoire .ssh sous /home/git, puis créons le fichierauthorized_keys et y importons la clé publique nouvellement générée. Ensuite, lorsque vous clonez à nouveau, ou lorsque vous appuyez plus tard, vous n'avez pas besoin de saisir à nouveau le mot de passe :

Zhu@XXX/E/testgit/8.34
$ git clone git@192.168.8.34:/data/git/learngit.git
Cloning into 'learngit'...
warning: You appear to have cloned an empty repository.
Checking connectivity... done.
7. Désactivez la connexion au shell pour les utilisateurs de git

Pour des raisons de sécurité, l'utilisateur git créé lors de la deuxième étape n'est pas autorisé à se connecter au shell. Cela peut être fait en éditant le fichier /etc/passwd. Trouvez une ligne similaire à la suivante :

git:x:1001:1001:,,,:/home/git:/bin/bash

Après le dernier deux-points, remplacez-le par :

git:x:1001:1001:,,,:/home/git:/usr/bin/git-shell

De cette façon, les utilisateurs de git peuvent utiliser git via ssh normalement, mais ne peuvent pas se connecter au shell, car le git-shell que nous avons spécifié pour les utilisateurs de git se déconnectera automatiquement à chaque fois qu'ils se connecteront.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer