🏳️‍🌈♿️👩‍🎨🌱 En février, je remets 3% de mes ventes à des organismes qui favorisent la diversité, les arts et l'environnement 🏳️‍🌈♿️👩‍🎨🌱

Potion Bottle Icon

Manuel d'alchimie du code

Potion Bottle Icon

SSH sans mot de passe avec git: configuration et usage.

Introduction

Je préfère utiliser git avec le protocole SSH sans mot de passe plutôt que HTTPS. Pour cause, pas besoin de s'authentifier à chaque fois, car on utilise une paire de clés d'authentification. La clé publique est partagée sur le serveur distant, et la clé privée est conservée sur le poste de travail, dans le répertoire ~/.ssh/.

Il serait facile d'utiliser la même clé SSH id_rsa.pub partout, puisque c'est la clé par défaut créée pour chaque utilisateur. Cependant, ce n'est pas sécuritaire, ce serait comme utiliser le même mot de passe partout.

On crée donc notre propre clé pour utiliser avec notre gestionnaire de répertoires git distant. Dans mon cas, c'est surtout GitLab que j'utilise. Je crée donc ici une clé pour mon GitLab situé à git.francoispelletier.org.

Git ne détectera pas automatiquement cette clé, et c'est l'objet de la petite procédure que je vais détailler.

Création de la clé SSH sans mot de passe

Pour créer une nouvelle clé SSH, on utilise la commande suivante:

ssh-keygen -f "~/.ssh/gitlab2" -N ""

Pour utiliser cette clé avec git, il faut configurer un hôte spécial pour ssh. Ceci se fait dans le fichier ~/.ssh/config. Voici un exemple de configuration tel que celui que j'utilise.

Host gitlab
    Hostname git.francoispelletier.org
    User git
    IdentityFile ~/.ssh/gitlab

Utilisation de la clé SSH sans mot de passe avec git

Maintenant, pour utiliser git, nous n'allons plus utiliser l'adresse fournir par le gestionnaire de répertoires, mais plutôt celle que nous avons spécifiée dans le fichier de configuration précédent.

Au lieu d'utiliser la commande suivante:

git clone git@git.francoispelletier.org:personnel/clone-repos.git

Nous utilisons maintenant celle-ci:

git clone gitlab:personnel/clone-repos.git

Voici le fonctionnement détaillé de cette commande

SSH sans mot de passe: Fonctionnement interne d'une commande git clone

Fonctionnement interne d'une commande git clone

Pour pousser vers le gestionnaire de répertoires, nous allons pouvoir utiliser la commande habituelle, en spécifiant le nom du remote (origin ici) et le nom de la branche (main ici).

git push origin main

Références

Pages connexes

Abonne-toi au flux RSS pour ne rien manquer.

Étiquettes