🔑 Module L9 – SSH (Sécurisation des accès distants)

📘 Cours complet ⏱️ 3h 🎯 Bloc 2 – SISR
Objectifs : maîtriser la configuration et la sécurisation du serveur SSH, utiliser les clés SSH, appliquer les bonnes pratiques.

📖 Introduction

SSH (Secure Shell) est le protocole standard pour l'administration distante sécurisée des serveurs Linux. Il remplace les protocoles non sécurisés comme Telnet et rlogin. Ce module vous apprend à configurer, durcir et utiliser SSH en environnement professionnel.

🎯

À l'issue de ce module, vous serez capable de :

  • Installer et configurer le serveur SSH (sshd).
  • Générer et utiliser des clés SSH (publique/privée).
  • Sécuriser SSH (désactiver root login, changer de port, etc.).
  • Utiliser des alias et des fichiers de configuration avancés.

⚙️ Installation

🔧 Configuration de SSH (/etc/ssh/sshd_config)

3.1 – Directives essentielles

DirectiveValeur recommandéeDescription
Port2222 (ou autre)Changer le port par défaut (22) pour réduire les attaques.
PermitRootLoginnoInterdire la connexion directe en root.
PasswordAuthenticationnoForcer l'authentification par clé (plus sécurisée).
PubkeyAuthenticationyesActiver l'authentification par clé publique.
AllowUsersuser1 user2Limiter les utilisateurs autorisés.
MaxAuthTries3Limiter les tentatives d'authentification.
ClientAliveInterval300Timeout pour les sessions inactives.

🔑 Authentification par clé SSH

4.1 – Générer une paire de clés

Générer une clé RSA de 4096 bits :

ssh-keygen -t rsa -b 4096 -C "mon@email.com"
  • -t rsa : type de clé (RSA).
  • -b 4096 : taille de la clé (recommandé).
  • -C "mon@email.com" : commentaire (identifiant).
  • Les clés sont sauvegardées dans ~/.ssh/id_rsa (privée) et ~/.ssh/id_rsa.pub (publique).

4.2 – Copier la clé publique sur le serveur

Copier la clé publique sur le serveur :

ssh-copy-id user@serveur
  • ssh-copy-id : copie automatiquement la clé publique dans ~/.ssh/authorized_keys.
  • Alternative manuelle : cat ~/.ssh/id_rsa.pub | ssh user@serveur "cat >> ~/.ssh/authorized_keys"

📋 Bonnes pratiques de sécurisation SSH

🛠️ Mise en pratique

6.1 – Configurer un serveur SSH sécurisé

Exemple de configuration sécurisée :

# /etc/ssh/sshd_config
Port 2222
PermitRootLogin no
PasswordAuthentication no
PubkeyAuthentication yes
AllowUsers alice bob
MaxAuthTries 3
ClientAliveInterval 300
LogLevel VERBOSE
  • Port 2222 : réduit les scans automatisés.
  • PermitRootLogin no : empêche les attaques brute-force sur root.
  • PasswordAuthentication no : force l'utilisation des clés.
  • AllowUsers : liste blanche des utilisateurs autorisés.
  • MaxAuthTries 3 : limite les tentatives.

6.2 – Utiliser ssh-agent

Ajouter une clé à ssh-agent :

eval $(ssh-agent)
ssh-add ~/.ssh/id_rsa
  • ssh-agent : gestionnaire de clés (évite de retaper la passphrase).
  • ssh-add : ajoute la clé privée à l'agent.

📝 Exercices d'application

Exercice 1 – Configuration

Quelle directive dans sshd_config permet de désactiver l'authentification par mot de passe ?

PasswordAuthentication no

Exercice 2 – Clés SSH

Quelle commande génère une paire de clés Ed25519 ?

ssh-keygen -t ed25519

🎯 Quiz d'auto‑évaluation

1. Le fichier de configuration du serveur SSH est :

2. Pour interdire le login root via SSH, on utilise :

3. La clé publique SSH est stockée dans :

4. La commande ssh-copy-id permet de :

5. Pour changer le port SSH par défaut, on modifie la directive :

📚 Ressources et liens utiles


← Retour au portail
BTS SIO – Lycée NDLP Avranches – Module L9 v1.0