SSH - Maîtriser les connexions sécurisées à distance
Ce cours couvre les fondamentaux et les techniques avancées de SSH (Secure SHell) pour sécuriser les communications et administrer des systèmes à distance. Il aborde la configuration, l'authentification par clé, le tunneling, ainsi que les bonnes pratiques pour les utilisateurs et les administrateurs. Ce PDF offre un support de cours complet et gratuit de 94 pages, intitulé "SSH : Secure SHell - De l’utilisateur à l’administrateur". Il fournit des explications détaillées, des exemples pratiques et des exercices pour maîtriser SSH, depuis les bases jusqu'à des fonctionnalités avancées comme le port forwarding et la sécurisation des serveurs.
Lien sécurisé — Téléchargement instantané
Programme du cours
Objectifs d'apprentissage
- Comprendre les principes fondamentaux de SSH et son utilité pour sécuriser les communications réseau.
- Maîtriser l'utilisation des outils clients SSH (ssh, sftp, scp) sous Unix et Windows (PuTTY).
- Configurer et gérer un serveur SSH (sshd), y compris les fichiers de configuration et les clés.
- Implémenter des méthodes d'authentification forte et sécuriser les accès distants.
- Utiliser le tunneling SSH pour sécuriser d'autres protocoles ou contourner des restrictions réseau.
- Résoudre les problèmes courants liés aux clés SSH et à la configuration du serveur.
Public cible
Ce cours s'adresse aux administrateurs système, développeurs et professionnels de l'informatique souhaitant sécuriser leurs échanges de données et accès distants. Une connaissance de base des systèmes Unix/Linux et des réseaux est recommandée.
Présentation
SSH (Secure SHell) est un protocole de communication sécurisé permettant d'établir une connexion chiffrée entre un client et un serveur. Il remplace les anciens protocoles non sécurisés comme Telnet ou rsh, en offrant un chiffrement robuste et des mécanismes d'authentification avancés. SSH est largement utilisé pour l'accès distant aux serveurs, le transfert de fichiers et le tunneling sécurisé.
Côté client
Unix - ssh
La commande ssh sous Unix permet de se connecter à un serveur distant. Exemple : ssh utilisateur@serveur. Elle prend en charge diverses options pour personnaliser la connexion.
Unix – ssh : rsh
SSH peut remplacer rsh (Remote Shell) en offrant une alternative sécurisée. Contrairement à rsh, SSH chiffre toutes les données échangées.
PuTTY - ssh
PuTTY est un client SSH graphique populaire pour Windows. Il permet de gérer des sessions SSH, SFTP et SCP via une interface intuitive.
Unix - sftp
sftp (SSH File Transfer Protocol) est un outil sécurisé pour transférer des fichiers. Exemple : sftp utilisateur@serveur.
Unix - scp
scp (Secure Copy) permet de copier des fichiers entre machines via SSH. Exemple : scp fichier utilisateur@serveur:/chemin.
Unix - fichiers impliqués
Les fichiers clés SSH sont stockés dans ~/.ssh/ (ex: id_rsa, id_rsa.pub). Le fichier known_hosts enregistre les empreintes des serveurs.
PuTTY - profiles
PuTTY permet de sauvegarder des profils de connexion (hôte, port, identifiants) pour faciliter les accès répétés.
ssh et X11
Le forwarding X11 via SSH (ssh -X) permet d'exécuter des applications graphiques distantes en local de manière sécurisée.
Côté serveur
sshd
Le démon sshd est le service SSH côté serveur. Il gère les connexions entrantes et applique les règles de sécurité.
configuration
La configuration de SSH se fait via /etc/ssh/sshd_config. Les paramètres incluent le port d'écoute, les méthodes d'authentification, etc.
StrictHostKeyChecking
Cette option contrôle la vérification des clés d'hôte. En mode "yes", SSH refuse les connexions si l'empreinte du serveur change.
problème de clés
Les erreurs de clés (ex: "Host key verification failed") surviennent quand l'empreinte du serveur ne correspond pas à celle enregistrée.
clés du serveur
Les clés SSH du serveur sont stockées dans /etc/ssh/ (ex: ssh_host_rsa_key). Elles identifient le serveur de manière unique.
changement de clés
En cas de compromission, régénérez les clés avec ssh-keygen et informez les utilisateurs pour mettre à jour known_hosts.
généralités
SSH utilise par défaut le port 22. Il est recommandé de le changer pour éviter les scans automatisés.
démarrage/arrêt
Gérez le service avec systemctl start/stop/restart sshd (Linux) ou les outils équivalents sur d'autres systèmes.
Authentification forte (AF)
L'authentification forte combine plusieurs facteurs (mot de passe + clé SSH, OTP, etc.). Configurez-la via sshd_config avec AuthenticationMethods.
Tunneling
Le tunneling SSH (ssh -L ou ssh -R) redirige un port local vers un serveur distant (ou inversement), sécurisant des protocoles non chiffrés (ex: VNC, HTTP). Exemple : ssh -L 8080:localhost:80 utilisateur@serveur.