Cours de SSH en PDF (Débutant)
SSH - Secure SHell : Ce qu'il faut savoir. SSH (Secure Shell) est un protocole cryptographique permettant d'établir des connexions à distance sécurisées vers un shell distant ou des services réseau. Téléchargez ce cours PDF pour acquérir les bases pratiques et théoriques nécessaires à l'utilisation sécurisée de SSH.
🎯 Ce que vous allez apprendre
- Fonctionnement de SSH : Comprendre comment SSH établit des connexions sécurisées entre client et serveur, y compris la gestion des clés en mémoire avec
ssh-agentand les communications sur le port 22. - Cryptographie dans SSH : Explorer les algorithmes de chiffrement, les échanges de clés, la cryptographie asymétrique et l'usage des clés publiques/privées.
- Authentification des utilisateurs : Apprendre les méthodes d'authentification (mot de passe, clé publique/clé privée) et bonnes pratiques de sécurité.
- Utilisation d'OpenSSH : Découvrir les outils et commandes OpenSSH pour gérer connexions, clés et tunneling en ligne de commande.
- Transfert de fichiers sécurisé via SCP et SFTP : Maîtriser les outils de copie et transfert de fichiers sécurisés entre hôtes.
- Tunneling et VPN avec SSH : Comprendre le tunneling (redirection de ports, X11 forwarding) et l'utilisation de SSH pour des connexions VPN simples.
📑 Sommaire du document
- Introduction
- Présentation
- Cryptographie dans SSH
- Fonctionnement du protocole SSH
- Authentification des serveurs
- Authentification des utilisateurs
- Tunneling et VPN avec SSH
- Conclusion
👤 À qui s'adresse ce cours ?
- Public cible : Débutants souhaitant comprendre les bases du shell sécurisé, du transfert de fichiers et du tunneling SSH. Le cours couvre l'usage en ligne de commande et présente des solutions pour Windows (PuTTY), Linux/macOS (OpenSSH) et le transfert de fichiers (WinSCP).
- Prérequis : Connaissance de base du terminal et notions élémentaires de réseau (adresses IP, ports). Le cours explique néanmoins pas à pas les commandes essentielles.
- Points pratiques : Le cours aborde aussi le déport d'affichage X11 (X11 forwarding) depuis des clients comme PuTTY pour Windows.
❓ Foire Aux Questions (FAQ)
Qu'est-ce que SSH ?
SSH est un protocole de communication qui chiffre les échanges entre un client et un serveur, offrant un shell sécurisé et des mécanismes d'authentification par clé publique/privée.
Pourquoi utiliser SSH plutôt que telnet ?
SSH chiffre les données (mots de passe, commandes, fichiers), empêchant les interceptions sur le réseau — contrairement à telnet qui transmet en clair.
Outils et clients SSH
- PuTTY (Windows) — client SSH populaire pour Windows, avec options de transfert de clés et X11 forwarding.
- OpenSSH (Linux/macOS) — suite en ligne de commande offrant serveur (
sshd) et client (ssh), standard de facto pour sécuriser les serveurs. - WinSCP — client graphique pour Windows orienté transfert de fichiers sécurisé via SCP/SFTP.
Commandes essentielles
Ce cours présente les commandes de base à connaître pour travailler efficacement en ligne de commande : connexion, copie de fichiers, gestion de clés et génération de paires. Une bonne maîtrise de ces commandes facilite l'automatisation et l'administration distante.
ssh— établir une connexion distante et ouvrir un shell sécurisé.scp— copier des fichiers entre hôtes via SSH.sftp— client interactif pour transfert de fichiers sécurisés.ssh-keygen— générer des paires de clés publique/privée pour l'authentification.
Génération de clés et cryptographie asymétrique : l'outil ssh-keygen crée une paire (clé publique + clé privée) reposant sur la cryptographie asymétrique. Les algorithmes modernes recommandés incluent Ed25519 pour sa sécurité et ses performances. La clé publique doit être copiée sur le serveur distant dans ~/.ssh/authorized_keys. L'usage de l'agent permet de stocker la clé privée en mémoire et de fournir une authentification forte sans réentrée permanente de la phrase de passe (passphrase).
Transfert de fichiers sécurisé : SCP et SFTP
Le document compare SCP et SFTP, deux méthodes courantes pour transférer des fichiers via SSH. SCP est simple et rapide pour des copies ponctuelles, tandis que SFTP offre un protocole interactif plus robuste (navigation à distance, résumés, permissions). Vous apprendrez commandes, options courantes et bonnes pratiques pour sécuriser les transferts et préserver les clés privées.
Pourquoi choisir OpenSSH pour sécuriser vos serveurs ?
OpenSSH est largement adopté sur les serveurs Linux et macOS pour sa robustesse, sa compatibilité avec les standards et sa simplicité d'administration. Il propose un serveur (sshd), des outils de gestion des clés, des options fines de contrôle d'accès et le support natif du tunneling et du port forwarding. Le cours détaille la configuration minimale recommandée pour exposer un service SSH sur le port 22 tout en limitant les vecteurs d'attaque ; les paramètres critiques se trouvent dans sshd_config.
Sécurisation et bonnes pratiques (Hardening)
La sécurisation d'un service SSH repose sur des règles simples mais efficaces : réduire la surface d'attaque, limiter les accès et surveiller les connexions. Appliquez une approche graduelle : audit des accès, configuration stricte, puis surveillance continue.
- Changer le port par défaut (22) pour réduire le bruit des scans automatisés, sans compter uniquement sur l'obscurcissement.
- Désactiver le login direct du compte root et forcer l'utilisation d'un compte avec privilèges pour l'élévation via
sudo. - Limiter les utilisateurs autorisés dans
sshd_config(directiveAllowUsersouAllowGroups), et restreindre les adresses IP si possible. - Activer l'authentification par clé et désactiver l'authentification par mot de passe lorsque c'est compatible avec votre environnement.
Pourquoi privilégier l'authentification par clé (Ed25519) ?
Les clés basées sur Ed25519 offrent une combinaison intéressante de sécurité et de rapidité pour la cryptographie asymétrique. Elles sont courtes, résistantes aux attaques connues et adaptées à une utilisation sur postes et serveurs contemporains. L'authentification par clé permet de mettre en place une authentification forte, surtout lorsqu'elle est associée à une phrase de passe (passphrase) robuste et à l'utilisation de ssh-agent pour la gestion des clés. Pour la plupart des usages débutants et intermédiaires, Ed25519 est le choix recommandé.
SSH et la ligne de commande (CLI) pour l'administration
SSH est l'outil standard pour l'administration en ligne de commande (CLI) des serveurs distants. Les opérations courantes — édition de fichiers, gestion de services, déploiement d'applications — s'effectuent via des sessions ssh ou des scripts automatisés. La CLI facilite l'intégration avec des outils d'automatisation (Ansible, scripts shell) et la création de tunnels pour sécuriser des flux. Maîtriser la CLI permet d'améliorer la réactivité et la reproductibilité des tâches d'administration.
Utilisation de SSH dans un contexte de développement (Git/GitHub)
SSH est largement utilisé pour l'authentification auprès des services Git (GitHub, GitLab, Bitbucket). Générer une paire de clés et ajouter la clé publique à votre compte Git permet des push/pull sécurisés sans saisie répétée de mot de passe. L'agent (ssh-agent) stocke la clé privée en mémoire et facilite une authentification forte lors des opérations Git depuis la CLI ou des outils d'intégration continue.