Maison >Tutoriel système >Linux >Construire un serveur Git sous CentOS
[root@localhost Desktop]# yum install -y git
adduser 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
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.
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.
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.
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!