1. C'est quoi SSH ?
Imagine que tu es à un bout de la planète, et qu'un serveur que tu dois configurer est à l'autre. Travailler comme un technicien IT d'école en courant entre les salles, c'est pas vraiment ce qu'on veut. Heureusement, il y a SSH (Secure SHell) — un outil pour gérer les serveurs à distance.
SSH, c'est un protocole réseau qui te permet de te connecter en toute sécurité à des ordinateurs distants. La connexion se fait grâce au chiffrement, ce qui signifie que les données transmises sont protégées contre les regards indiscrets. SSH remplace les méthodes obsolètes comme Telnet, qui transmettaient les données en clair (un peu comme une carte postale de La Poste).
Avantages de SSH
- Sécurité. SSH utilise le chiffrement, protégeant les données contre les interceptions.
- Flexibilité. Gestion à distance des serveurs, transfert de fichiers, création de tunnels — tout ça est possible avec SSH.
- Compatibilité multiplateforme. Fonctionne sur Linux, Windows (y compris WSL), et MacOS.
Maintenant que tu comprends pourquoi SSH est utile, passons à la pratique.
2. Installation du client SSH
Commençons par le client, qui permettra de se connecter au serveur. Si tu utilises une distribution Linux moderne, il y a de grandes chances que le client SSH soit déjà installé. Vérifions ça :
ssh -V
Tu devrais voir des infos sur la version du client SSH. Si la commande n'est pas trouvée, installe-le (sur Ubuntu et autres distributions basées sur Debian) :
sudo apt update
sudo apt install openssh-client
Sur MacOS, le client SSH est préinstallé, et si tu travailles sur WSL, l'installation est similaire à celle de Linux.
3. Connexion à un serveur distant via SSH
La connexion au serveur s'effectue avec la commande suivante :
ssh username@hostname
username— c'est le nom de l'utilisateur sur le serveur distant.hostname— c'est l'adresse IP ou le nom de domaine du serveur.
Exemple de connexion :
ssh student@192.168.1.10
Si tout est bien configuré, le système demandera un mot de passe. Après avoir entré le mot de passe, vous serez dans la console distante du serveur. Félicitations, vous êtes à mi-chemin vers la profession d'« opérateur du super méchant dans un film de hackers ».
4. Installation et configuration du serveur SSH
Installation du serveur SSH
Si tu travailles sur un serveur ou une machine locale où tu veux te connecter, il faut installer le serveur SSH. Sur Ubuntu, fais-le comme suit :
sudo apt update
sudo apt install openssh-server
Vérifions le statut du service SSH :
sudo systemctl status ssh
Tu devrais voir un message comme active (running). Si le serveur n'est pas démarré, utilise :
sudo systemctl start ssh
sudo systemctl enable ssh
Maintenant, le serveur SSH est prêt à accepter des connexions.
Configuration du serveur SSH
Le fichier de configuration principal du serveur SSH est /etc/ssh/sshd_config. Pour l'éditer, utilise un éditeur de texte comme nano :
sudo nano /etc/ssh/sshd_config
Fais attention aux paramètres suivants :
Port 22— le port sur lequel fonctionne SSH.PermitRootLogin no— interdiction de connexion pour root (il est recommandé de laissernopour des raisons de sécurité).PasswordAuthentication yes— autorisation de connexion par mot de passe.
Après avoir modifié les paramètres, redémarre le serveur SSH :
sudo systemctl restart ssh
5. Utilisation de l'authentification par clé
Se connecter avec un mot de passe, c'est pratique, mais pas super sécurisé. La meilleure option : utiliser des clés SSH.
Génération des clés SSH
Sur la machine cliente, exécute la commande suivante :
ssh-keygen
Le script te demandera où sauvegarder la clé (par défaut ~/.ssh/id_rsa). Tu peux juste appuyer sur Entrée pour accepter. Ensuite, il te demandera une passphrase. Il vaut mieux laisser vide pour simplifier (mais c'est un peu moins sûr).
Une fois la commande exécutée, les fichiers de clés seront créés :
id_rsa— clé privée (ne la rends pas publique, comme le code source de ton projet avant un release, surtout s'il est encore plein de dettes techniques).id_rsa.pub— clé publique (celle-ci, tu peux l'utiliser pour te connecter).
Transférer la clé vers le serveur
Utilise la commande ssh-copy-id pour envoyer la clé publique au serveur :
ssh-copy-id username@hostname
Ça va ajouter ta clé publique dans le fichier ~/.ssh/authorized_keys sur le serveur. Maintenant, tu peux te connecter sans mot de passe.
Essaie :
ssh username@hostname
Si tout a fonctionné, on ne te demandera pas de mot de passe. Ta vie est officiellement devenue un peu plus simple.
SSH et WSL
Si tu bosses sur Windows via WSL, tu peux aussi utiliser SSH. Ouvre le terminal WSL et installe le client SSH :
sudo apt update
sudo apt install openssh-client
Les étapes suivantes sont les mêmes que pour Linux.
6. Partie pratique : configurer SSH sur localhost
Pour la pratique, tu peux configurer une connexion SSH entre deux machines sur le même réseau ou même sur ton propre ordinateur (en utilisant localhost comme adresse).
- Installe le serveur et le client SSH sur une machine.
- Connecte-toi via l'adresse locale :
ssh your_user@localhost
- Configure la connexion via clé, comme montré précédemment.
Au final, tu devrais avoir une connexion sans saisie de mot de passe.
7. Travailler avec des configurations et des alias SSH
Si tu te connectes souvent à différents serveurs, tu peux te simplifier la vie en ajoutant une configuration SSH dans le fichier ~/.ssh/config :
Host myserver
HostName 192.168.1.10
User student
IdentityFile ~/.ssh/id_rsa
Maintenant, tu peux te connecter simplement avec la commande :
ssh myserver
Erreurs fréquentes et leur correction
Erreur "Connection refused". Cela signifie que le serveur SSH n'est pas lancé sur la machine distante. Assure-toi qu'il est installé et lancé.
Erreur "Permission denied". Soit tu as entré un mot de passe incorrect, soit les clés sont mal configurées. Vérifie le contenu du fichier
~/.ssh/authorized_keyssur le serveur.Erreur "No route to host". Vérifie si le serveur est accessible sur le réseau (utilise
ping).
Maintenant, tu as les connaissances pour configurer SSH, utiliser des clés et éviter les problèmes courants. C'est un outil puissant utilisé partout, que ce soit pour la configuration de serveurs au travail ou la gestion d'un Raspberry Pi à la maison.
GO TO FULL VERSION