Cours de SSH en PDF (Débutant)
SSH (Secure Shell) : Ce qu'il faut savoir. SSH est un protocole de communication sécurisé qui permet d'établir des connexions chiffrées entre des machines, remplaçant ainsi des méthodes de connexion non sécurisées. SSH est devenu le standard universel pour l'administration à distance sécurisée. Ce cours PDF gratuit à télécharger s'adresse aux débutants souhaitant comprendre et utiliser SSH pour sécuriser leurs connexions à distance : chiffrement asymétrique, authentification par clé publique et utilisation d'un shell distant sur le port 22 sont expliqués pas à pas.
🎯 Ce que vous allez apprendre
- Présentation de SSH : principes, cas d'usage et références standards (RFC, OpenSSH).
- SSH - côté client : outils et commandes pour le client SSH, y compris PuTTY et OpenSSH.
- SSH - côté serveur : configuration et contrôle des accès pour un serveur SSH sécurisé.
- Autorisation forte : gestion des clés publiques, formats RSA/ED25519 et pratique d'authorized_keys.
- Conclusion : bonnes pratiques opérationnelles et liens vers des ressources complémentaires.
Prérequis pour suivre ce cours
Le dossier s'adresse aux débutants disposant d'un accès à un terminal. La compréhension et la mise en œuvre impliquent l'utilisation d'un terminal et de commandes simples.
- Notions de base de la ligne de commande Linux (navigation, édition de fichiers, permissions).
- Accès à une machine distante ou environnement de test (VM, conteneur) pour pratiquer.
Outils et protocoles liés
SSH s'appuie sur un écosystème d'outils et de protocoles complémentaires — implémentations et sous-protocoles courants sont listés ci‑dessous pour faciliter la navigation et la compréhension.
- OpenSSH
- Implémentation open source courante sous Unix/Linux, comprenant
ssh,sshd,scpetsftp. Référence opérationnelle pour l'administration. - PuTTY
- Client SSH populaire on Windows, interface graphique et options de configuration pour les connexions et le transfert de clés.
- SCP
- Outil de copie sécurisé basé sur SSH pour transférer des fichiers de manière simple et rapide à partir de la ligne de commande.
- SFTP
- Sous-protocole sécurisé pour le transfert de fichiers avec navigation distante, reprise et gestion des droits.
Pourquoi sécuriser vos accès avec SSH ?
SSH remplace des protocoles anciens non sécurisés (Telnet, rsh, rlogin, rcp) en chiffrant les échanges et en offrant des mécanismes d'authentification robustes. En pratique, SSH protège les identifiants et le contenu des sessions grâce à des algorithmes de chiffrement et à des paires de clés (clé publique/clé privée) — les clés RSA ou ED25519 étant couramment utilisées. Pour un administrateur débutant, maîtriser SSH permet d'obtenir un shell distant sécurisé et d'effectuer des transferts de fichiers sûrs, limitant ainsi les risques d'interception et d'usurpation d'identité.
Les commandes SSH essentielles à connaître
Quelques commandes de base couvrent la majorité des besoins initiaux : établir des connexions, transférer des fichiers et gérer des clés. Elles fonctionnent depuis un terminal avec OpenSSH ou via des clients graphiques équivalents.
ssh utilisateur@hote
Transfert de fichiers avec SCP :
scp fichier.pdf utilisateur@hote:/destination/
SFTP offre une session interactive de transfert (navigation, reprise, gestion des droits) via SSH.
Fonctionnement des clés publiques et privées
Le chiffrement asymétrique repose sur une paire de clés : une clé privée conservée sur votre poste et une clé publique installée sur le serveur (fichier ~/.ssh/authorized_keys). Lors d'une connexion, SSH utilise ces clés pour vérifier l'identité sans transmettre de secret sur le réseau. ED25519 offre de meilleures performances et une taille de clé réduite ; RSA reste choisi pour sa compatibilité. Utiliser une passphrase protège la clé privée en cas de compromission du fichier.
Sécurisation avancée : SSH-Agent et clés ED25519
La gestion sûre des clés privées et le choix d'algorithmes modernes améliorent significativement la posture de sécurité. Le duo ssh-agent + clés ED25519 est une pratique recommandée : ED25519 fournit une sécurité cryptographique élevée avec de faibles coûts de calcul, tandis que ssh-agent permet de charger les clés en mémoire et d'automatiser les authentifications sans réintroduire la clé privée sur disque à chaque utilisation.
Gestion des sessions avec SSH-Agent
ssh-agent conserve vos clés privées en mémoire chiffrée et délègue les opérations de signature aux processus qui en ont besoin, évitant ainsi de taper la passphrase à chaque connexion. Flux d'utilisation courant : générer la clé locale (ssh-keygen -t ed25519), démarrer ssh-agent, ajouter la clé avec ssh-add, puis se connecter normalement. Ceci réduit les interruptions tout en maintenant la protection apportée par une passphrase.
Cas d'usage : Le Tunneling SSH
Le tunneling SSH (port forwarding) permet de sécuriser des connexions TCP existantes en les encapsulant dans un canal chiffré. Les deux modes principaux sont le transfert de port local et le transfert de port distant.
- Transfert local (local port forwarding) : redirige un port local vers un hôte distant accessible depuis le serveur SSH, utile pour sécuriser l'accès à une application interne. Exemple :
ssh -L 8080:intranet:80 utilisateur@serveur. - Transfert distant (remote port forwarding) : permet à un serveur distant d'ouvrir un port vers un service local, pratique pour exposer temporairement un service local à distance. Exemple :
ssh -R 9000:localhost:3000 utilisateur@serveur.
Le tunneling SSH s'intègre aux scénarios de contournement sécurisé, au relais d'applications et à la protection de services non chiffrés sans modifier leur configuration.
Différences entre SSH, Telnet et Rsh
SSH chiffre l'ensemble des échanges (identifiants, commandes, sorties), alors que Telnet et rsh transmettent les données en clair, exposant mots de passe et contenu des sessions aux interceptions réseau. SSH ajoute des mécanismes modernes d'authentification par clé et d'options de contrôle d'accès, rendant Telnet/rsh inadaptés pour des environnements non isolés.
| Critère | SSH | Telnet | RDP |
|---|---|---|---|
| Chiffrement | Oui (chan. chiffré) | Non (texte clair) | Oui (protocol propriétaire) |
| Authentification | Clés publiques / mots de passe | Mots de passe | Certificats / NLA |
| Cas d'usage | Administration à distance, port forwarding | Diagnostics sur réseaux fermés | Accès bureau graphique à distance |
| Déploiement | Serveurs Unix/Linux, clients multiplateformes | Obsolète | Principalement Windows |
❓ Foire Aux Questions (FAQ)
Qu'est-ce que SSH ?
Protocole chiffrant les connexions entre ordinateurs pour protéger les échanges et l'authentification.
Pourquoi utiliser SSH plutôt que Telnet ?
SSH chiffre les données, empêchant la lecture des informations sensibles par des tiers interceptant le trafic.