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

Construire un serveur Git sous CentOS

王林
Libérer: 2024-04-15 19:13:01
avant
1179 Les gens l'ont consulté

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
Copier après la connexion
2. Créez un utilisateur git pour exécuter le service git
adduser git
Copier après la connexion
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/
Copier après la connexion

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
Copier après la connexion
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:
Copier après la connexion

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)?
Copier après la connexion

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.
Copier après la connexion

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"
Copier après la connexion

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
Copier après la connexion

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.
Copier après la connexion
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
Copier après la connexion

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

git:x:1001:1001:,,,:/home/git:/usr/bin/git-shell
Copier après la connexion

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!

source:linuxprobe.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal