Une introduction détaillée à la méthode de clonage de https et SSH dans git et la résolution des conflits SSH de plusieurs comptes github et le problème que le port SSH est bloqué par le pare-feu Résoudre le problème du clonage de projets privés via HTTPS

objectif d'apprentissage :

Maîtriser les connaissances de Git


Contenu d'apprentissage :

1. La différence entre HTTPS et SSH 2. Étapes pour une configuration complète des clés SSH et des clés publiques 3. Résolution des conflits SSH pour plusieurs comptes github 4. Ports SSH bloqués par les pare-feu

temps d'étude:

2022.2.10

Sortie d'apprentissage :

1. La différence entre HTTPS et SSH

Il existe deux manières de cloner un projet dans git : HTTPS et SSH. Les différences entre elles sont les suivantes :

HTTPS : peu importe qui vous êtes, vous pouvez simplement cloner l'URL, mais vous devez vérifier le nom d'utilisateur et le mot de passe lors de la transmission ;
SSH : vous devez être le propriétaire ou l'administrateur du projet de clonage, et vous devez ajouter une clé SSH avant le clone.
Lorsque SSH pousse, vous n'avez pas besoin d'entrer le nom d'utilisateur. Si un mot de passe est défini lors de la configuration de la clé SSH, vous devez entrer le mot de passe. Sinon, vous n'avez pas besoin d'entrer le mot de passe directement.

Étapes pour utiliser la clé SSH dans git : Vérifiez si la clé SSH existe sur l'ordinateur : $ cd ~/.ssh$ ls S'il existe un
fichier id_rsa.pub ou id_dsa.pub, cela signifie que le fichier existe et saute l'étape de création d'une clé SSH. Créer une clé SSH pour mettre le SSH public sur le référentiel distant

2. Configurez complètement les étapes de la clé SSH et de la clé publique

S'il vous plaît voir mon autre article dans cette colonne

3. Résolution des conflits SSH pour plusieurs comptes github

github utilise SSH pour se connecter au client. S'il s'agit d'un seul utilisateur (d'abord), après avoir généré la paire de clés, enregistrez la clé publique sur github, et
le client SSH envoie la clé privée locale (par défaut ~/.ssh/id_rsa) au serveur pour vérification à chaque fois qu'il se connecte .
Dans le cas d'un utilisateur unique, la clé publique stockée sur le serveur connecté et la clé privée transmise sont naturellement appariées.

Mais s'il est multi-utilisateur (premier, second), lorsque nous nous connectons au compte du second, le
second enregistre sa propre clé publique, mais le client SSH envoie toujours la clé privée par défaut, qui est la clé privée du premier, alors cette vérification est naturellement impossible .passer à travers.
Cependant, pour réaliser la commutation de clé SSH sous plusieurs comptes, vous pouvez effectuer une configuration côté client.

Tout d'abord, cd vers ~/.ssh et utilisez ssh-keygen -t -rsa -C '[email protected]' pour générer une nouvelle clé SSH : id_rsa_second, et ajoutez la nouvelle clé publique SSH à github après la génération.

ssh-keygen -t -rsa -C '[email protected]'

Par défaut, SSH ne lira que id_rsa, donc pour que SSH reconnaisse la nouvelle clé privée, elle doit être ajoutée à l'agent SSH

ssh-add/.ssh/id_rsa_second

Si la commande signale une erreur : Could not open a connection to your authentication agent. Impossible de se connecter à l'agent ssh, exécutez ssh-agent bashla commande, puis exécutez la ssh-addcommande.

Après avoir terminé les étapes ci-dessus, créez un fichier de configuration dans le répertoire ~/.ssh, qui est utilisé pour configurer le serveur correspondant à la clé privée. Le contenu est le suivant :

 Default github user(first@mail.com)
Host github.com
HostName github.com
User git
IdentityFile C:/Users/username/.ssh/id_rsa

#second user([email protected])
Host github-second
HostName github.com
User git
IdentityFile C:/Users/username/.ssh/id_rsa_second

Une fois la configuration terminée, lors de la connexion à un référentiel github avec un compte autre que le compte par défaut, l'adresse du référentiel distant doit être modifiée en conséquence. Par exemple, lors de l'ajout d'un test de référentiel sous le deuxième compte, vous devez l'ajouter comme ce:

git remote add test git@github-second:second/test.git 
#并非原来的[email protected]:second/test.git

De cette façon, chaque connexion utilisera id_rsa_second pour se connecter au serveur. Jusqu'ici, vous avez terminé !

Remarque : github obtient le compte github et affiche les informations sur l'auteur en fonction de l'utilisateur.email du fichier de configuration. Par conséquent, pour les utilisateurs disposant de plusieurs comptes, vous devez vous rappeler de remplacer user.email par l'e-mail correspondant ([email protected]).

4. Résoudre le problème que le port SSH est bloqué par le pare-feu

Configurez SSH pour utiliser le port HTTPS 403
Dans le LAN, le port SSH 22 peut être bloqué par le pare-feu, vous pouvez configurer SSH pour utiliser le port HTTPS 403.

Tester si le port HTTPS est disponible

$ ssh -T -p 443 git@ssh.github.com
Hi username! You've successfully authenticated, but GitHub does not
provide shell access.

Modifiez le fichier de configuration SSH ~/.ssh/config comme suit :

Host github.com
Hostname ssh.github.com
Port 443

Tester si la configuration est réussie

$ ssh -T git@github.com
Hi username! You've successfully authenticated, but GitHub does not
provide shell access.

5. Cloner des projets privés via HTTPS ou SSH

À l'heure actuelle, les projets privés de github sont disponibles gratuitement depuis un certain temps, mais lorsque vous utilisez la méthode de clonage ordinaire pour télécharger en local, vous constaterez que le clonage échoue et qu'un message d'erreur s'affiche.

remote: Repository not found.
fatal: repository ‘https://github.com/github-username/github-template-name.git’ not found

Normalement, le format de lien du clone est généralement

https://github.com/github-username/github-template-name.git

Ensuite, lorsque vous souhaitez cloner votre propre projet privé localement, pour la sécurité du projet privé, vous devez ajouter un compte et un mot de passe pour vérification

git clone https://github-username:github-password@github.com/github-username/github-template-name.git

Lors du clonage, ajoutez github-username:github-password après https://, puis le lien @project peut cloner le projet normalement. C'est un moyen relativement simple de cloner votre propre projet privé.

Certains logiciels graphiques Git peuvent vous demander de saisir un compte et un mot de passe, ce qui est plus pratique. Par exemple
insérez la description de l'image ici
, entrez le lien HTTPS de l'entrepôt privé, cliquez sur cloner, la boîte de saisie apparaîtra automatiquement, vous permettant d'entrer le mot de passe du compte, ce qui est plus convivial.

Cependant, SourceTree, le logiciel
insérez la description de l'image ici
, ne peut pas cloner en saisissant des liens HTTPS. Comme il s'agit d'un référentiel privé
, la solution consiste à se connecter au compte distant dans SourceTree
insérez la description de l'image ici
pour extraire le référentiel privé.

Alternativement, l'utilisation d'un lien SSH peut également répondre aux exigences. Étant donné que SSH correspond à la clé privée et à la clé publique, il n'est pas nécessaire de saisir un compte et un mot de passe

Je suppose que tu aimes

Origine blog.csdn.net/m0_48781656/article/details/122854653
conseillé
Classement