Ce que vous allez faire
À la fin de ce tutoriel vous disposerez d'un serveur Linux accessible uniquement par clé SSH. Un utilisateur non-root avec sudo sera créé, la connexion root et l'authentification par mot de passe seront désactivées. L'ensemble prend moins d'une heure sur une machine fraîche.
Prérequis
- Serveur Linux avec accès root initial (Debian, Ubuntu ou dérivé récent)
- Terminal ouvert et connexion SSH existante
- Droits sudo ou root
- Clé publique/privée générée sur votre poste client
Étape 1 — Installer OpenSSH
L'installation du paquet openssh-server active le service et crée les clés hôte. C'est la base pour configurer un serveur ssh sécurisé sous linux.
sudo apt update && sudo apt install openssh-server -y
sudo systemctl enable --now sshÉtape 2 — Créer un utilisateur non-root avec sudo
Évitez de travailler en root permanent. Créez un utilisateur dédié et ajoutez-le au groupe sudo.
sudo adduser deploy
sudo usermod -aG sudo deployÉtape 3 — Générer et copier la clé SSH
Sur votre poste client, générez une paire de clés Ed25519 puis copiez la clé publique sur le serveur.
ssh-keygen -t ed25519 -C "deploy@serveur"
ssh-copy-id deploy@IP_DU_SERVEURÉtape 4 — Configurer sshd_config
Modifiez le fichier de configuration pour renforcer la sécurité. Gardez toujours une session ouverte pendant les tests.
sudo nano /etc/ssh/sshd_configPermitRootLogin no
PasswordAuthentication no
PubkeyAuthentication yes
PermitEmptyPasswords no
ClientAliveInterval 300
ClientAliveCountMax 2Étape 5 — Appliquer les changements et tester
Redémarrez le service et vérifiez que la nouvelle configuration est prise en compte.
sudo systemctl restart ssh
sudo sshd -tÉtape 6 — Configurer le pare-feu UFW
Limitez l'accès au port 22 uniquement depuis les adresses nécessaires.
sudo ufw allow from VOTRE_IP to any port 22
sudo ufw enableVérifier que tout fonctionne
Depuis votre poste client, ouvrez une nouvelle connexion et confirmez que l'authentification par mot de passe est refusée.
ssh -o PasswordAuthentication=no deploy@IP_DU_SERVEURErreurs fréquentes
Permission denied (publickey)
La clé n'a pas été copiée ou les permissions sur ~/.ssh sont incorrectes. Exécutez chmod 700 ~/.ssh et chmod 600 ~/.ssh/authorized_keys sur le serveur.
Connection refused après redémarrage SSH
Une erreur de syntaxe dans sshd_config bloque le service. Vérifiez avec sudo sshd -t avant de redémarrer.
Accès coupé après modification du pare-feu
UFW bloque le port 22. Depuis la console physique du serveur, exécutez sudo ufw allow 22.
Aller plus loin
Ajoutez fail2ban, configurez des certificats SSH ou mettez en place un bastion pour plusieurs serveurs.
Se former avec Learni
Maîtriser PuTTY : Le client SSH et Telnet pour l’administration à distance
Administrateurs système et techniciens réseau. Installer, configurer PuTTY et établir des connexions sécurisées. 1 journée, niveau Novice, distanciel, 1400 € HT par participant. Détails
Maîtriser PuTTY : Sécuriser et Gérer ses Connexions SSH
Administrateurs système débutants. Gérer les clés SSH et authentification via PuTTYgen. 1 journée, niveau Novice, distanciel, 1400 € HT par participant. Détails
Maîtriser SSH : Connexion Sécurisée aux Serveurs Linux
Administrateurs systèmes et développeurs. Configurer un serveur SSH et gérer les authentifications avancées. 1 journée, niveau Intermédiaire, distanciel, 1400 € HT par participant. Détails
Besoin d'un accompagnement sur mesure ? Devis sous 48 h.
FAQ
Combien de temps faut-il pour configurer un serveur SSH sécurisé sous Linux ?
Moins d'une heure si les prérequis sont réunis. Les six étapes se suivent sans interruption.
Quelles distributions Linux sont compatibles ?
Toutes les distributions basées sur Debian ou Ubuntu récentes. Les commandes apt sont identiques.
Puis-je conserver l'accès root après la configuration ?
Non. La désactivation de PermitRootLogin est obligatoire pour réduire la surface d'attaque.
Que faire si je perds l'accès après modification de sshd_config ?
Reconnectez-vous via la console physique du serveur ou via un autre utilisateur encore valide.
