Utiliser plusieurs comptes GitLab et clés SSH

GitLab plusieurs clés SSH
Web pratique Lecture 7 minutes • 3 janvier 2020

Voici comment utiliser deux comptes GitLab avec deux clés SSH sur un même ordinateur. C'est très pratique pour distinguer ses projets professionnels et personnels, par exemple.
Il faut savoir que GitLab ne permet pas d'associer une même clé SSH à plusieurs comptes GitLab. C'est pourquoi nous allons voir comment configurer 2 clés SSH sur l'ordinateur.
Cette méthode détaille spécifiquement point par point comment y arriver sur un environnement Windows 10, avec l'aide de Git Bash. Elle reste valable pour les utilisateurs Mac OS ou Linux.
 
Partons du principe que nous avons créé les 2 comptes GitLab suivants :

  • Compte Perso, nom d'utilisateur ("Full name" dans GitLab) : perso, email : perso@mail.com
  • Compte Pro, nom d'utilisateur ("Full name" dans GitLab) : pro, email : pro@mail.com

 

Générer les clés SSH sur votre ordinateur

Générer la clé SSH du compte Perso

Ouvrir Git Bash et saisir la commande suivante (remplacer l'adresse e-mail par celle de votre premier compte GitLab)

$ ssh-keygen -t rsa -C "perso@email.com"
Demande de génération de la clé SSH pour le compte Perso

 
Le message suivant s'affiche alors :
Enter file in which to save the key (/c/Users/Moi/.ssh/id_rsa):

 
Ajouter à la suite de ce message le nom du nouveau fichier à générer pour le compte Perso (id_rsa_perso), ce qui ressemble à ceci :
Enter file in which to save the key (/c/Users/Moi/.ssh/id_rsa):/c/Users/Moi/.ssh/id_rsa_perso
On précise la création de la clé SSH pour le compte Perso

Appuyer ensuite deux fois sur Entrée lorsqu'un mot de passe vous est demandé.

Générer la clé SSH du compte Pro

On renouvelle la même procédure que précédemment,
Dans Git Bash saisir la commande suivante (remplacer l'adresse e-mail par celle de votre second compte GitLab)

$ ssh-keygen -t rsa -C "pro@email.com"
Demande de génération de la clé SSH pour le compte Pro

 
Le message suivant s'affiche alors :
Enter file in which to save the key (/c/Users/Moi/.ssh/id_rsa):

 
Ajouter à la suite de ce message le nom du nouveau fichier à générer pour le compte Pro (id_rsa_pro), ce qui ressemble à ceci :
Enter file in which to save the key (/c/Users/Moi/.ssh/id_rsa):/c/Users/Moi/.ssh/id_rsa_pro
On précise la création de la clé SSH pour le compte Pro

Appuyer ensuite deux fois sur Entrée lorsqu'un mot de passe vous est demandé.

Vérifier la bonne création des clés SSH sur votre ordinateur

Dans Windows, aller dans le disque principal (C:) > Utilisateurs > Moi (votre nom d'utilisateur) > .ssh
Dans ce dossier .ssh doivent à présent s'afficher 2 fichiers "id_rsa_perso" et 2 fichiers"id_rsa_pro"
 
Ou bien, utiliser le code suivant dans Git Bash

$ ls ~/.ssh
On demande la liste des clés SSH enregistrées

On obtient alors la liste des clés privées et publiques (.pub)
id_rsa_perso  id_rsa_pro  id_rsa_perso.pub  id_rsa_pro.pub
Liste des clés privées et publiques

 

Création et configuration du fichier config

Créer un fichier nommé config (avec Notepad ou Sublime Text par exemple), dans le dossier .ssh
Ajouter le code suivant, adaptez-le à votre cas et enregistrer :

# Compte Perso
Host gitlab.com-perso
   HostName gitlab.com
   PreferredAuthentications publickey
   IdentityFile ~/.ssh/id_rsa_perso

# Compte Pro
Host gitlab.com-pro
   HostName gitlab.com
   PreferredAuthentications publickey
   IdentityFile ~/.ssh/id_rsa_pro
Créer le fichier config dans le dossier .ssh

Quand on souhaiteras utiliser le compte perso,
on utilisera l'Host gitlab.com-perso, lié au fichier SSH id_rsa_perso
Quand on souhaiteras utiliser le compte pro,
on utilisera l'Host gitlab.com-pro, lié au fichier SSH id_rsa_pro
 

Ajouter les clées SSH à vos comptes GitLab et tester

Ajout des clées publiques aux comptes GitLab

La commande suivante à faire dans Git Bash va afficher la clé SSH publique pour le compte Perso.

$ cat ~/.ssh/id_rsa_perso.pub
Saisir dans Git Bash pour afficher la clé publique du compte Perso

Copier la clé et la coller dans le compte GitLab (votre premier compte) : Settings > SSH Keys
 
On renouvelle l'opération avec le compte Pro cette fois,
La commande suivante à faire dans Git Bash va afficher la clé SSH publique pour le compte Pro.
$ cat ~/.ssh/id_rsa_pro.pub
Saisir dans Git Bash pour afficher la clé publique du compte Pro

Copier la clé et la coller dans le compte GitLab (votre second compte) : Settings > SSH Keys

On teste les connexions

On teste la bonne connexion avec GitLab depuis l'interface de Git Bash à l'aide du code suivant :

$ ssh -T git@gitlab.com-perso
Welcome to GitLab, Perso!
Vérification de la connexion au compte Perso GitLab

$ ssh -T git@gitlab.com-pro
Welcome to GitLab, Pro!
Vérification de la connexion au compte Pro GitLab

 
Les connexions sont bonnes, on peut passer aux cas pratiques et commencer à communiquer avec GitLab !
 

Exemple d'utilisation avec un Git Push initial

Dans cet exemple, nous avons un site WordPress développé en local, que nous souhaitons "pousser" pour la première fois vers notre compte GitLab Perso.

cd existing_folder
git init
git remote add origin git@gitlab.com:perso/fd.git
git add .
git commit -m "Initial commit"
git push -u origin master
Code classique suggéré par GitLab

cd existing_folder
git init
git remote add origin git@gitlab.com-perso:perso/fd.git
git add .
git commit -m "Initial commit"
git push -u origin master
Code modifié pour utiliser le compte Perso avec GitLab et faire le premier Push

 
Autrement dit, au lieu d'écrire :

git remote add origin git@gitlab.com:perso/fd.git

 
On précise le choix d'utiliser le compte Perso et donc d'écrire :

git remote add origin git@gitlab.com-perso:perso/fd.git

 

Exemple d'utilisation avec un Git Clone depuis GitLab

Dans cet exemple, nous avons un site WordPress sur notre compte Pro GitLab et nous souhaitons le récupérer en local sur notre ordinateur.

git clone git@gitlab.com:TibowWebdesign/fd.git
cd fd
touch README.md
git add README.md
git commit -m "add README"
git push -u origin master
Code classique suggéré par GitLab

git clone git@gitlab.com-pro:pro/fd.git
cd fd
touch README.md
git add README.md
git commit -m "add README"
git push -u origin master
Code modifié pour utiliser le compte Pro avec GitLab et faire un Clone

 
Autrement dit, au lieu d'écrire :

git clone git@gitlab.com:pro/fd.git

 
On précise le choix d'utiliser le compte Pro et donc d'écrire :

git clone git@gitlab.com-pro:pro/fd.git

 
A vous de jouer maintenant !


      

Avis clients

Tibow Webdesign

Tous les avis

Charlotte Séjourné - Wildust.com 10 septembre 2021

Google Avis
Thibaut est une personne super disponible et très pro.
Chaque projet confié a été géré avec beaucoup de professionnalisme et pas mal de pédagogie pour les néophytes comme moi! C'est super appréciable.

Maud Rochais Photographe 26 août 2021

Google Avis
Thibault a répondu a mes attentes ! Il est à l'écoute et a su cerner rapidement ce que je voulais en terme de site. Le résultat est parfait ! Merci à toi !

Loïc Perrière 6 janvier 2021

Ingénieur de recherches - CNRS / Recommandation LinkedIn
Lors du démarrage de projet de refonte du site web de mon laboratoire, j’ai contacté Thibaut pour obtenir des renseignements sur un travail qu’il avait déjà réalisé auprès d’un autre client.
Sa franchise et la clarté de ses réponses m’ont finalement convaincu de lui confier la conception de deux sites internet. Nos échanges ont toujours été constructifs, et Thibaut a fait preuve, tout au long du développement, de dynamisme et de réactivité, et a également réalisé de nombreuses propositions qui ont majoritairement été retenues. Enfin, il a su faire preuve d’écoute pour intégrer les problématiques et les demandes spécifiques d’un site internet de laboratoire public pour créer un site à notre image.
La collaboration a été fructueuse et constructive, et ça a été un réel plaisir de travailler avec lui.

Clara Deleuze 21 décembre 2020

Principal Chief Executive Officer chez On Divorce / Recommandation LinkedIn
Je collabore avec Thibault depuis plus de 10 ans.
Plus qu'un dev Full Stack c'est un profil au sens logique qui sera vous accompagner plus globalement sur votre projet IT.
Je lui ai confié plus de 5 projets et vous le recommande vivement : réactivité, sens du détail, proactivité...Il sait s'adapter "au métier" pour lequel il intervient et pas uniquement à la fonctionnalité !

Ackeret Mano 22 février 2019

Google Avis
Nous avons fait appel à Thibaut pour développer le site internet de notre entreprise Ackeret Mano, l'année dernière et nous avons été très satisfaits.

C'est un garçon à l'écoute, disponible et sérieux.
Nous vous le recommandons les yeux fermés.

Frédéric Meyrou 19 octobre 2018

Google Avis
Thibaut a repris en main le site du projet de coopérative supercoop.fr et il a parfaitement compris le style et l'énergie qu'il fallait donner au projet donc le site est un vecteur important de communication. Vous pouvez lui faire confiance!

Patrick Chatenet 24 juin 2018

Google Avis
Nous avons travaillé avec Thibaut Soufflet pour finaliser un site Wordpress fait par une autre personne qui était partie vers d'autres horizons professionnels. Il s'est parfaitement adapté, nous a bien écouté et a proposé de très bonnes solutions en termes d'ergonomie et de facilité d'utilisation pour nos clients. A eu à régler des problèmes techniques et a pris le temps de nous trouver les meilleures solutions. Je le conseille vivement!

Anaelle Sorignet 21 mai 2018

Google Avis
Tibow est super efficace, réactif et à l'écoute ! Il nous a concocté un super site. Je recommande vivement de faire appel à lui.

ISOPROM 15 avril 2018

Google Avis
donne de tres bons conseils

Alexis Supiot 5 septembre 2017

Google Avis
Plusieurs projets avec Thibaut et à chaque fois de bons échanges, une facilité dans la compréhension de nos attentes et pour l'ensemble des résultats très satisfaisants sur le rendu. Je recommande vivement et sais que nous aurons d'autres projets ensemble.
Lire plus