Bonjour !
Dans la leçon précédente, vous avez appris à gérer les services qui tournent en arrière-plan sur votre serveur avec la commande systemctl. Vous savez maintenant comment vérifier leur état, les démarrer, les arrêter et les activer au démarrage.
Aujourd'hui, nous allons nous concentrer sur l'un des services les plus importants pour un administrateur systèmes : le service SSH. L'objectif de cette leçon est de vous apprendre à vous connecter à distance à votre serveur en utilisant le protocole SSH. C'est la compétence fondamentale qui vous permettra de gérer des serveurs où que vous soyez, sans avoir besoin d'un accès physique. Nous verrons comment établir une connexion simple avec un mot de passe, puis nous passerons à une méthode beaucoup plus sécurisée et professionnelle : l'authentification par clé.
1. Qu'est-ce que le protocole SSH ?
SSH signifie Secure Shell (ou "interpréteur de commandes sécurisé"). C'est un protocole qui crée un "tunnel" chiffré et sécurisé entre deux machines à travers un réseau (comme Internet ou votre réseau local). Ce tunnel vous permet d'exécuter des commandes sur une machine distante comme si vous étiez assis juste devant elle.
Pour un administrateur système, c'est l'outil de travail principal. La grande majorité des serveurs en entreprise sont hébergés dans des datacenters, sans écran ni clavier. SSH est la porte d'entrée pour les configurer, les mettre à jour et les dépanner.
Pour bien visualiser ce concept, regardez cette courte introduction.
Le PROTOCOLE SSH pour DÉBUTANTS 💡
La vidéo "Le PROTOCOLE SSH pour DÉBUTANTS" de la chaîne Hafnium - Sécurité informatique explique très clairement pourquoi SSH est indispensable pour administrer un serveur à distance.
Regardez le début de la vidéo, de 00:00 à 01:34. Concentrez-vous sur l'analogie du serveur dans un datacenter et sur le fait que SSH fournit une connexion sécurisée et chiffrée.
La connexion SSH implique toujours deux parties :
- Le serveur SSH (le service
sshdque nous avons mentionné dans la leçon précédente) qui tourne sur la machine que vous voulez contrôler (votre VM Ubuntu). - Le client SSH (la commande
ssh) que vous utilisez depuis votre propre machine (votre PC Windows) pour initier la connexion.

2. Se connecter avec un nom d'utilisateur et un mot de passe
Passons à la pratique ! Nous allons nous connecter depuis votre PC Windows à votre machine virtuelle Ubuntu Server.
Étape 1 : Préparer le serveur (votre VM Ubuntu)
D'abord, nous devons nous assurer que le service SSH est bien en cours d'exécution et connaître l'adresse IP de notre serveur.
-
Démarrez votre machine virtuelle Ubuntu Server et connectez-vous.
-
Vérifiez que le service SSH est actif avec une commande que vous connaissez bien :
sudo systemctl status sshVous devriez voir
Active: active (running). Si ce n'est pas le cas, démarrez-le avecsudo systemctl start ssh. Normalement, il est activé par défaut. -
Trouvez l'adresse IP de votre serveur. C'est son "adresse postale" sur le réseau. Tapez la commande suivante :
ip aCette commande affiche toutes les interfaces réseau. Cherchez une interface qui n'est pas
lo(loopback). Vous y trouverez une ligne commençant parinetsuivie d'une adresse de type192.168.x.xou10.x.x.x. C'est l'adresse IP que vous devez noter.

Étape 2 : Se connecter depuis le client (votre PC Windows)
Les versions modernes de Windows incluent un client SSH. Vous pouvez l'utiliser directement depuis l'invite de commandes (CMD) ou PowerShell.
-
Sur votre PC Windows, ouvrez PowerShell.
-
Utilisez la commande
sshavec la syntaxe suivante :ssh nom_utilisateur@adresse_ip
Remplaceznom_utilisateurpar le nom d'utilisateur de votre VM Ubuntu etadresse_ippar l'adresse que vous venez de noter. Par exemple :ssh florian@192.168.1.25 -
Première connexion : l'empreinte du serveur
La première fois que vous vous connecterez, un message apparaîtra :The authenticity of host '...' can't be established. ... Are you sure you want to continue connecting (yes/no/[fingerprint])?Ce n'est pas une erreur ! Le client SSH vous demande de confirmer l'identité du serveur. Il vous montre l'"empreinte" (fingerprint) de la clé publique du serveur. En tapant
yes, vous dites à votre client de faire confiance à ce serveur et de sauvegarder cette empreinte. Cela vous protège contre les attaques de type "Man-in-the-middle" à l'avenir. Tapezyeset appuyez sur Entrée. -
Authentification
Le terminal vous demandera ensuite le mot de passe de l'utilisateur sur le serveur Ubuntu. Tapez-le (rien ne s'affichera à l'écran, c'est normal) et appuyez sur Entrée.
Félicitations ! Vous êtes maintenant connecté à votre serveur. Le prompt de votre terminal a changé pour indiquer nom_utilisateur@nom_du_serveur. Chaque commande que vous taperez sera exécutée sur la VM Ubuntu.
Pour quitter la session SSH et revenir à votre machine locale, tapez simplement :
exit
3. L'authentification par clé SSH : la méthode professionnelle
Se connecter avec un mot de passe est pratique, mais peu sécurisé. Les mots de passe peuvent être devinés par des attaques "brute-force". La méthode standard et bien plus sûre est l'authentification par clé.
Le principe repose sur une paire de clés :
- Une clé privée, que vous gardez secrète sur votre machine cliente (votre PC Windows).
- Une clé publique, que vous copiez sur le ou les serveurs auxquels vous voulez accéder.
Lorsque vous vous connectez, le serveur utilise la clé publique pour vérifier que vous possédez bien la clé privée correspondante, sans jamais que la clé privée ne transite sur le réseau.
Le PROTOCOLE SSH pour DÉBUTANTS 💡
Pour bien comprendre pourquoi cette méthode est supérieure, regardez cet extrait de la vidéo de Hafnium.
Regardez la section de 07:12 à 14:45. Elle explique pourquoi les clés sont plus sûres et vous guidera visuellement dans les étapes que nous allons réaliser juste après : la génération des clés et leur installation sur le serveur.
Mettons cela en place.
Étape 1 : Générer la paire de clés (sur votre PC Windows)
- Ouvrez une nouvelle fenêtre PowerShell sur votre PC Windows.
- Tapez la commande suivante pour générer les clés :
ssh-keygen - Le programme vous posera plusieurs questions :
Enter file in which to save the key...: Appuyez simplement sur Entrée pour accepter l'emplacement par défaut.Enter passphrase (empty for no passphrase):: C'est un mot de passe pour protéger votre clé privée elle-même. C'est une sécurité supplémentaire. Pour cet exercice, vous pouvez appuyer sur Entrée pour ne pas en mettre, mais en environnement professionnel, il est fortement recommandé d'en utiliser un. Appuyez une deuxième fois pour confirmer.
Vos clés sont maintenant créées dans un dossier .ssh à la racine de votre profil utilisateur Windows (par ex. C:\Users\VotreNom\.ssh). Les deux fichiers importants sont id_rsa (la clé privée, à ne jamais partager) et id_rsa.pub (la clé publique).
Étape 2 : Copier la clé publique sur le serveur (votre VM Ubuntu)
Maintenant, il faut autoriser cette nouvelle clé sur votre serveur.
-
Sur votre PC Windows, affichez le contenu de votre clé publique :
cat C:\Users\VotreNom\.ssh\id_rsa.pub(Remplacez
VotreNompar votre nom d'utilisateur Windows). Une longue chaîne de caractères commençant parssh-rsaoussh-ed25519va s'afficher. Sélectionnez l'intégralité de ce texte et copiez-le (clic droit ouCtrl+C). -
Connectez-vous à votre serveur Ubuntu avec votre mot de passe, comme nous l'avons fait précédemment :
ssh nom_utilisateur@adresse_ip -
Une fois sur le serveur, nous allons ajouter la clé publique au fichier
authorized_keys. Ce fichier liste toutes les clés autorisées à se connecter.# Crée le dossier .ssh s'il n'existe pas (il devrait déjà exister) mkdir -p ~/.ssh # Ouvre le fichier des clés autorisées avec nano nano ~/.ssh/authorized_keys -
Dans
nano, collez la clé publique que vous avez copiée depuis votre machine Windows (dans PowerShell, un clic droit suffit souvent pour coller). Assurez-vous qu'il n'y a pas de saut de ligne au milieu de la clé. -
Sauvegardez le fichier (
Ctrl+O, Entrée) et quitteznano(Ctrl+X). -
Très important : Il faut définir les bonnes permissions pour ces fichiers, sinon SSH refusera la connexion par sécurité.
chmod 700 ~/.ssh chmod 600 ~/.ssh/authorized_keyschmod 700sur le dossier signifie que seul vous (le propriétaire) pouvez y lire, écrire et y accéder.chmod 600sur le fichier signifie que seul vous pouvez le lire et le modifier.
Étape 3 : Tester la connexion par clé
Tout est en place !
- Déconnectez-vous du serveur :
exit. - Relancez la commande de connexion depuis PowerShell :
ssh nom_utilisateur@adresse_ip
Magie ! Vous devriez être connecté directement, sans que le serveur ne vous demande de mot de passe.
Conclusion
Vous maîtrisez maintenant une compétence absolument essentielle pour tout futur ingénieur systèmes et réseaux. Vous savez non seulement vous connecter à un serveur à distance, mais aussi le faire de manière sécurisée.
Les points clés à retenir :
- SSH est le protocole standard pour l'administration sécurisée des serveurs à distance.
- La connexion se fait d'un client SSH (votre PC) vers un serveur SSH (votre VM).
- L'authentification par mot de passe est simple mais vulnérable.
- L'authentification par clé SSH est la méthode à privilégier : plus sécurisée et plus pratique.
- Le processus est :
- Générer une paire de clés sur le client (
ssh-keygen). - Copier la clé publique (
.pub) sur le serveur dans le fichier~/.ssh/authorized_keys. - Sécuriser les permissions avec
chmod.
- Générer une paire de clés sur le client (
Dans la prochaine leçon, nous allons plonger plus profondément dans les fondations de ce qui a rendu cette connexion possible. Nous allons commencer un nouveau module sur les fondamentaux des réseaux en décrivant le modèle TCP/IP. Vous comprendrez comment les données sont structurées et voyagent à travers les différentes couches du réseau, de l'application comme SSH jusqu'au matériel.