Tutoriel vidéo SSH : Utiliser une clef SSH

Dans ce tutoriel nous allons voir comment utiliser et configurer une clef SSH pour se connecter à un serveur distant (serveur mutualisé, VPS ou dédié). Par défaut, les hébergeurs auront tendance à vous fournir un mot de passe, mais son utilisation s’avère peu sécurisée. Aussi, certains services peuvent vous demander une clef SSH pour interagir avec leur système (github, gitlab…).

L’utilisation de clés SSH offre plusieurs avantages :

  • Meilleure sécurité : Une clef offre un niveau de sécurité supplémentaire car si une personne souhaite vous la voler il lui faudra un accès à votre système.
  • Plus pratique : Certains systèmes disposent d’agents SSH qui permettent de se souvenir des clef (cela évite de taper le mot de passe systématiquement).
  • Automatisation : Les clés SSH peuvent être utilisées pour automatiser des tâches, comme le déploiement de code.

Créer une paire de clés SSH

Pour utiliser des clés SSH, vous devez d’abord générer une paire de clés : une clé privée et une clé publique. La clé privée est conservée sur votre ordinateur et ne doit jamais être partagée. La clé publique est partagée avec le serveur pour autoriser la connexion sans mot de passe.

Pour générer une paire de clés SSH, on utilisera la commande ssh-keygen :

Si vous êtes sur Windows vous pouvez faire ces commandes depuis le WSL

ssh-keygen -t ed25519 -C "your_email@example.com"

Vous pouvez aussi changer le fichier de destination à l’aide du drapeau -f

Copie de la clef sur le serveur

Maintenant que nous avons notre coupe de clef il faut l’envoyer au serveur (on envoie la clef public, la clef privée ne doit jamais être partagée !). On peut effectuer cette opération facilement à l’aide de la commande ssh-copy-id

ssh-copy-id -i ~/.ssh/clef.pub user@host.tld

Cette commande va modifier le fichier ~/.ssh/authorized_keys du serveur pour ajouter la clef publique sur le serveur.

Se connecter avec sa clef

Une fois votre clef créée et copiée sur le serveur vous pouvez l’utiliser lors de votre connexion SSH.

ssh user@host.tld -i ~/.ssh/clef

Créer des alias

Pour éviter d’avoir à taper la commande complète à chaque fois vous pouvez vous créer des alias pour éviter la répétition. Cela se fait au travers du fichier ~/.ssh/config.

Host *
    IgnoreUnknown AddKeysToAgent,UseKeychain
    AddKeysToAgent yes
    UseKeychain yes

Host monalias
    Hostname host.tld
    User username
    Port 22
    IdentityFile ~/.ssh/maclef
    IdentitiesOnly yes

Vous pourrez ensuite utiliser votre alias à la place du chemin de votre serveur SSH.

ssh monalias

Liens relatifs