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.
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.
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é.
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.
SSH peut remplacer rsh (Remote Shell) en offrant une alternative sécurisée. Contrairement à rsh, SSH chiffre toutes les données échangées.
PuTTY est un client SSH graphique populaire pour Windows. Il permet de gérer des sessions SSH, SFTP et SCP via une interface intuitive.
sftp
(SSH File Transfer Protocol) est un outil sécurisé pour transférer des fichiers. Exemple : sftp utilisateur@serveur
.
scp
(Secure Copy) permet de copier des fichiers entre machines via SSH. Exemple : scp fichier utilisateur@serveur:/chemin
.
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 permet de sauvegarder des profils de connexion (hôte, port, identifiants) pour faciliter les accès répétés.
Le forwarding X11 via SSH (ssh -X
) permet d'exécuter des applications graphiques distantes en local de manière sécurisée.
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é.
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.
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.
Les erreurs de clés (ex: "Host key verification failed") surviennent quand l'empreinte du serveur ne correspond pas à celle enregistrée.
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.
En cas de compromission, régénérez les clés avec ssh-keygen
et informez les utilisateurs pour mettre à jour known_hosts
.
SSH utilise par défaut le port 22. Il est recommandé de le changer pour éviter les scans automatisés.
Gérez le service avec systemctl start/stop/restart sshd
(Linux) ou les outils équivalents sur d'autres systèmes.
L'authentification forte combine plusieurs facteurs (mot de passe + clé SSH, OTP, etc.). Configurez-la via sshd_config
avec AuthenticationMethods
.
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
.
Partner sites PDF Tutorials (English) | PDF Manuales (Spanish) | Cours PDF (French)