- 1 1. Introduction
- 2 2. Concepts de base de SSH
- 3 3. Installation d’un serveur SSH sur Ubuntu
- 4 4. Configuration des connexions SSH
- 5 5. Exécution des connexions SSH
- 6 6. Dépannage des connexions SSH
- 6.1 Causes courantes des erreurs de connexion SSH et solutions
- 6.2 1. Le serveur SSH n’est pas en cours d’exécution
- 6.3 2. Le pare-feu (UFW) bloque SSH
- 6.4 3. Le numéro de port a été modifié
- 6.5 4. Permissions incorrectes de la clé SSH
- 6.6 5. Incohérence de la clé d’hôte
- 6.7 6. Vérification des journaux SSH
- 6.8 7. Problèmes de délai d’attente de connexion SSH
- 6.9 Résumé
- 7 7. Renforcer la sécurité SSH
- 8 9. Conclusion
1. Introduction
En utilisant SSH sur Ubuntu, vous pouvez accéder et opérer sur des serveurs ou des PC de manière sécurisée à distance. Cet article fournit une explication détaillée de SSH — de ses concepts de base et de la façon d’installer un serveur SSH sur Ubuntu, aux meilleures pratiques de sécurité et à la résolution de problèmes — en utilisant des explications claires adaptées même aux débutants.
Qu’est-ce que SSH ?
SSH (Secure Shell) est un protocole qui permet des connexions distantes sécurisées aux ordinateurs via un réseau. Contrairement aux protocoles traditionnels tels que Telnet ou FTP, SSH chiffre les données de communication, réduisant considérablement le risque d’espionnage et de falsification.
Principaux cas d’utilisation de SSH sur Ubuntu
Les principaux scénarios dans lesquels SSH est utilisé sur Ubuntu incluent les suivants :
- Gestion de serveur à distance : Opérer sur des serveurs Ubuntu depuis des emplacements distants
- Transfert de fichiers : Échanger des fichiers de manière sécurisée en utilisant SCP ou SFTP
- Redirection de ports : Établir des connexions distantes sécurisées
Ce que vous apprendrez dans cet article
- Concepts de base et mécanismes de SSH
- Comment installer un serveur SSH sur Ubuntu
- Comment configurer les connexions SSH et résoudre les erreurs
- Meilleures pratiques de sécurité pour SSH
2. Concepts de base de SSH
Pour utiliser SSH efficacement, il est crucial de comprendre ses concepts principaux. Dans ce chapitre, nous expliquons comment SSH fonctionne et les différences entre les méthodes d’authentification.
Comment SSH fonctionne-t-il ?
SSH est un protocole qui établit une connexion sécurisée entre un client et un serveur. Par défaut, il utilise le port TCP 22 pour la communication chiffrée.
Principales fonctionnalités
- Connexion à distance : Exécuter des commandes sur un serveur
- Transfert de fichiers : Envoyer des données de manière sécurisée via SCP ou SFTP
- Redirection de ports : Se connecter à d’autres services via SSH
Méthodes d’authentification SSH
SSH propose principalement deux méthodes d’authentification :
Authentification par mot de passe
- Se connecter en utilisant un nom d’utilisateur et un mot de passe
- Simple, mais vulnérable aux attaques par force brute
Authentification par clé publique
- Authentification en utilisant une paire de clés publique et privée
- Plus sécurisée et recommandée par défaut
Avantages de SSH
- Communication chiffrée : Protège les données transmises
- Gestion à distance facile : Accès depuis n’importe où
- Sécurité renforcée : Aide à prévenir l’accès non autorisé
3. Installation d’un serveur SSH sur Ubuntu
Pour utiliser SSH sur Ubuntu, vous devez installer le paquet du serveur OpenSSH. Ce chapitre explique comment l’installer et le configurer.
Installation du serveur OpenSSH
Vous pouvez installer le serveur OpenSSH sur Ubuntu en utilisant les commandes suivantes :
sudo apt update
sudo apt install openssh-server
Après l’installation, vérifiez que le service SSH est en cours d’exécution :
sudo systemctl status ssh
Démarrage et gestion du service SSH
Pour démarrer ou arrêter manuellement le service SSH, utilisez les commandes suivantes :
# Start SSH
sudo systemctl start ssh
# Enable SSH to start automatically after reboot
sudo systemctl enable ssh
# Stop SSH
sudo systemctl stop ssh
Configuration de UFW (Uncomplicated Firewall)
Si UFW est activé, les connexions SSH peuvent être bloquées. Autorisez le port SSH (22) avec les commandes ci-dessous :
sudo ufw allow ssh
sudo ufw enable
4. Configuration des connexions SSH
Pour utiliser SSH de manière sécurisée, une configuration appropriée est essentielle. Ce chapitre explique comment configurer l’authentification par clé publique.
Génération d’une paire de clés
Exécutez la commande suivante sur la machine cliente pour générer une paire de clés publique/privée :
ssh-keygen -t rsa -b 4096
Par défaut, la clé privée est stockée dans ~/.ssh/id_rsa, et la clé publique est stockée dans ~/.ssh/id_rsa.pub.
Téléversement de la clé publique sur le serveur
Transférez la clé publique générée sur le serveur SSH :
ssh-copy-id username@server-ip-address
Ou transférez manuellement :
scp ~/.ssh/id_rsa.pub username@server-ip-address:~/
Sur le serveur, exécutez les commandes suivantes pour placer la clé publique dans le répertoire approprié :
mkdir -p ~/.ssh
cat ~/id_rsa.pub >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
rm ~/id_rsa.pub
Modification de sshd_config
Ouvrez le fichier de configuration SSH pour améliorer les paramètres de sécurité :
sudo nano /etc/ssh/sshd_config
Vérifiez et modifiez les éléments de configuration suivants :
# Disable password authentication (use public key only)
PasswordAuthentication no
# Disable root login
PermitRootLogin no
# Change the SSH port (example: 2222)
Port 2222
Après avoir apporté les modifications, redémarrez le service SSH :
sudo systemctl restart ssh
5. Exécution des connexions SSH
Une fois le serveur SSH configuré sur Ubuntu, vous pouvez vous connecter depuis une machine cliente. Ce chapitre explique l’utilisation de base de SSH et les méthodes de connexion lorsque le port est modifié.
Commande de connexion SSH de base
Utilisez la commande suivante pour vous connecter depuis un client SSH au serveur :
ssh username@server-ip-address
Par exemple, si l’IP du serveur est 192.168.1.10 et le nom d’utilisateur est ubuntu, tapez :
ssh ubuntu@192.168.1.10
Lors de la première connexion, l’empreinte digitale du serveur sera affichée. Entrez yes pour accepter et procéder.
Connexion après modification du numéro de port
Si vous avez modifié le port SSH — par exemple, en 2222 —, utilisez l’option -p :
ssh -p 2222 ubuntu@192.168.1.10
Connexion avec une clé privée
Si l’authentification par clé publique est configurée, spécifiez la clé privée en utilisant l’option -i :
ssh -i ~/.ssh/id_rsa ubuntu@192.168.1.10
Exécution de commandes distantes via SSH
Vous pouvez exécuter des commandes directement sur le serveur distant sans vous connecter de manière interactive :
ssh ubuntu@192.168.1.10 "ls -lah /home/ubuntu"
Cette approche permet une automatisation efficace et des opérations à distance en utilisant des scripts.
Transfert de fichiers avec SCP
Vous pouvez transférer des fichiers entre le PC local et le serveur distant en utilisant SSH.
Local → Distant
scp filename username@server-ip-address:/remote/directory
Exemple :
scp myfile.txt ubuntu@192.168.1.10:/home/ubuntu/
Distant → Local
scp username@server-ip-address:/remote/filename /local/directory
Exemple :
scp ubuntu@192.168.1.10:/home/ubuntu/myfile.txt ./
Gestion de fichiers avec SFTP
Vous pouvez également gérer des fichiers en utilisant SFTP :
sftp ubuntu@192.168.1.10
Une fois connecté, vous pouvez exécuter les commandes suivantes :
ls # List files
cd # Change directory
put filename # Upload a local file to the remote server
get filename # Download a remote file to the local machine
exit # Exit the connection
6. Dépannage des connexions SSH
Il n’est pas rare de rencontrer des problèmes lors de la connexion via SSH. Ce chapitre décrit les problèmes courants et comment les résoudre.
Causes courantes des erreurs de connexion SSH et solutions
Lorsqu’une connexion SSH échoue, la cause est généralement l’une des suivantes :
1. Le serveur SSH n’est pas en cours d’exécution
Tout d’abord, confirmez que le serveur SSH fonctionne correctement :
sudo systemctl status ssh
Solution :
- Si le serveur SSH est arrêté, démarrez-le en utilisant la commande suivante :
sudo systemctl start ssh
- Pour activer le démarrage automatique de SSH après un redémarrage, exécutez :
sudo systemctl enable ssh
2. Le pare-feu (UFW) bloque SSH
Si UFW (Uncomplicated Firewall) est activé, l’accès SSH peut être bloqué :
Solution :
- Vérifiez la configuration actuelle de UFW :
sudo ufw status
- Autorisez l’accès SSH :
sudo ufw allow ssh
(Si vous utilisez un port personnalisé, exécutez sudo ufw allow <port-number>)
- Redémarrez UFW :
sudo ufw reload
3. Le numéro de port a été modifié
Si le serveur SSH n’utilise pas le port par défaut 22, vous devez spécifier le port correct lors de la connexion :
Solution :
- Vérifiez le numéro de port sur le serveur :
sudo grep Port /etc/ssh/sshd_config
- Spécifiez le port correct sur le client :
ssh -p 2222 username@server-ip-address
4. Permissions incorrectes de la clé SSH
Si vous utilisez l’authentification par clé publique, des permissions de clé incorrectes peuvent empêcher la connexion.
Solution :
- Définir les permissions pour la clé privée :
chmod 600 ~/.ssh/id_rsa
- Définir les permissions pour la clé publique :
chmod 644 ~/.ssh/authorized_keys
5. Incohérence de la clé d’hôte
Si la clé d’hôte SSH du serveur a changé, le client peut afficher une erreur telle que : “WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!”
Solution :
- Supprimer l’ancienne clé d’hôte :
ssh-keygen -R <server-ip-address>
- Réessayer de se connecter :
ssh username@server-ip-address
6. Vérification des journaux SSH
Pour identifier les messages d’erreur détaillés de SSH, consultez les fichiers journaux du serveur :
sudo journalctl -u ssh --no-pager | tail -n 20
Pour surveiller les journaux en temps réel, exécutez :
sudo tail -f /var/log/auth.log
7. Problèmes de délai d’attente de connexion SSH
Si les connexions SSH sont lentes ou se déconnectent de manière inattendue, examinez les points suivants :
Solution :
- Activer KeepAlive – Ajoutez ce qui suit au fichier
~/.ssh/configdu client :Host * ServerAliveInterval 60
- Ajuster les paramètres de délai d’attente sur le serveur – Ajoutez ce qui suit à
/etc/ssh/sshd_configet redémarrez le service :ClientAliveInterval 60 ClientAliveCountMax 3sudo systemctl restart ssh
Résumé
Les problèmes de connexion SSH proviennent généralement des points suivants. Dans la plupart des cas, vérifier ces éléments résout le problème :
✅ Vérifier que le service SSH fonctionne
✅ Vérifier que le pare-feu ne bloque pas la connexion
✅ Confirmer que le bon port SSH est utilisé
✅ S’assurer que les permissions des clés SSH sont correctement définies
✅ Examiner les journaux SSH pour identifier les erreurs détaillées

7. Renforcer la sécurité SSH
SSH est un outil d’accès à distance puissant, mais sans mesures de sécurité appropriées, il peut devenir une cible d’accès non autorisé ou d’attaques par force brute. Ce chapitre explique les réglages recommandés pour renforcer la sécurité de SSH.
1. Désactiver l’authentification par mot de passe et utiliser l’authentification par clé publique
Par défaut, SSH autorise la connexion par mot de passe, ce qui augmente le risque d’attaques par force brute. Activez l’authentification par clé publique et désactivez l’authentification par mot de passe pour améliorer la sécurité.
Étapes
- Modifier
sshd_configsudo nano /etc/ssh/sshd_config
- Modifier ou ajouter les paramètres suivants
PasswordAuthentication no PubkeyAuthentication yes
- Redémarrer le service SSH
sudo systemctl restart ssh
Après avoir appliqué cette configuration, SSH n’acceptera que l’authentification par clé publique. Assurez‑vous que vos clés SSH sont correctement configurées au préalable.
2. Modifier le numéro de port SSH
Utiliser le port SSH par défaut (22) rend les serveurs plus faciles à cibler pour les attaquants. Modifier le numéro de port aide à réduire les tentatives d’accès non autorisé.
Étapes
- Ouvrir
sshd_configsudo nano /etc/ssh/sshd_config
- Modifier la ligne suivante (exemple : changer le port à 2222)
Port 2222
- Autoriser le nouveau port dans le pare‑feu
sudo ufw allow 2222/tcp
- Redémarrer le service SSH
sudo systemctl restart ssh
- Tester la connexion en utilisant le nouveau port
ssh -p 2222 username@server-ip-address
3. Désactiver la connexion root
Par défaut, SSH autorise la connexion root, ce qui représente un risque de sécurité sérieux. Il est recommandé de n’autoriser l’accès SSH qu’aux comptes utilisateurs ordinaires et d’utiliser sudo lorsque des privilèges administratifs sont nécessaires.
Étapes
- Ouvrir
sshd_configsudo nano /etc/ssh/sshd_config
- Modifier la ligne suivante
PermitRootLogin no
- Redémarrer le service SSH
sudo systemctl restart ssh
4. Prévenir les attaques par force brute avec Fail2Ban
Fail2Ban détecte les tentatives de connexion non autorisées et bloque automatiquement les adresses IP qui dépassent un certain nombre d’échecs.
Installation et configuration
- Installer Fail2Ban
.« ` sudo apt install fail2ban -y
2. Copiez le fichier de configuration par défaut
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
3. Modifiez `jail.local`
sudo nano /etc/fail2ban/jail.local
4. Modifiez la section `[sshd]`
[sshd]
enabled = true
maxretry = 5
bantime = 600
findtime = 600
* `maxretry` : Nombre de tentatives de connexion échouées autorisées
* `bantime` : Durée du blocage d'IP (secondes)
* `findtime` : Fenêtre de temps pour compter les tentatives échouées (secondes)
1. Redémarrez Fail2Ban
sudo systemctl restart fail2ban
6. Vérifiez l'état actuel de Fail2Ban
sudo fail2ban-client status sshd
### Résumé
Pour renforcer la sécurité SSH, appliquez les mesures suivantes :
✅ **Désactiver l'authentification par mot de passe et utiliser l'authentification par clé publique**
✅ **Changer le port SSH pour réduire l'exposition aux attaques**
✅ **Désactiver la connexion root pour minimiser les risques**
✅ **Utiliser Fail2Ban pour prévenir les attaques par force brute**
## 8. Questions Fréquemment Posées (FAQ)
Cette section répond aux questions et problèmes courants qui surviennent lors de la configuration et de l'utilisation de SSH.
### Q1 : Pourquoi SSH affiche-t-il « Connection refused » ?
Il existe plusieurs causes possibles pour qu'une connexion SSH soit refusée.
**Principales causes et solutions :**
1. **Le service SSH n'est pas en cours d'exécution**
sudo systemctl status ssh
**Solution :** Démarrez le service s'il est arrêté.
sudo systemctl start ssh
2. **Le pare-feu (UFW) bloque SSH**
sudo ufw allow ssh sudo ufw enable
3. **Le numéro de port SSH a été modifié** Si SSH utilise un port personnalisé, spécifiez-le lors de la connexion.
ssh -p 2222 username@server-ip-address
### Q2 : Comment changer le port SSH par défaut ?
Le port 22 est une cible d'attaque courante, le changer améliore la sécurité.
**Étapes :**
1. Modifiez le fichier de configuration SSH
sudo nano /etc/ssh/sshd_config
2. Modifiez la directive `Port`
Port 2222
3. Autorisez le nouveau port via le pare-feu
sudo ufw allow 2222/tcp
4. Redémarrez le service SSH
sudo systemctl restart ssh
Après avoir effectué ces changements, connectez‑vous en utilisant le nouveau port :
ssh -p 2222 username@server-ip-address
### Q3 : Que vérifier si l'authentification par clé publique ne fonctionne pas ?
Vérifiez les points suivants si l'authentification par clé SSH échoue :
1. **Assurez‑vous que la clé publique est correctement installée**
ls -l ~/.ssh/authorized_keys
Assurez‑vous que `authorized_keys` existe et contient la clé correcte.
2. **Vérifiez les permissions des fichiers**
chmod 600 ~/.ssh/authorized_keys chmod 700 ~/.ssh
3. **Vérifiez que SSH autorise l'authentification par clé publique**
sudo nano /etc/ssh/sshd_config
Assurez‑vous que les entrées suivantes sont présentes :
PubkeyAuthentication yes PasswordAuthentication no
4. **Redémarrez le service SSH**
sudo systemctl restart ssh
### Q4 : Comment autoriser l'accès SSH uniquement depuis des adresses IP spécifiques ?
Restreindre l'accès SSH à des adresses IP spécifiques augmente considérablement la sécurité.
**Méthode 1 : Modifier `sshd_config`**
1. Ouvrez le fichier de configuration
sudo nano /etc/ssh/sshd_config
2. Ajoutez une entrée `AllowUsers`
AllowUsers username@192.168.1.100
3. Redémarrez le service SSH
sudo systemctl restart ssh
**Méthode 2 : Configurer le pare‑feu (UFW)**
1. Autorisez l'accès depuis une IP spécifique
sudo ufw allow from 192.168.1.100 to any port 22
2. Refusez l'accès aux autres
sudo ufw deny 22
### Q5 : Comment modifier le délai d'expiration d'une session SSH ?
Si votre session SSH se déconnecte après une période d'inactivité, modifiez les paramètres suivants.
**Paramètres côté client**
1. Ajoutez ce qui suit à `~/.ssh/config` :
Host * ServerAliveInterval 60
**Paramètres côté serveur**
1. Modifiez `sshd_config`
sudo nano /etc/ssh/sshd_config
2. Ajoutez ou modifiez :
ClientAliveInterval 60 ClientAliveCountMax 3
3. Redémarrez le service SSH
sudo systemctl restart ssh « `
Résumé
Ce FAQ couvre les problèmes et solutions SSH les plus courants. Lorsqu’un problème survient, examinez toujours les journaux et les paramètres de configuration pour identifier la cause.
✅ Comment résoudre les problèmes de « Connection refused »
✅ Comment changer le port SSH par défaut et se connecter correctement
✅ Comment dépanner les échecs d’authentification par clé publique
✅ Comment restreindre l’accès SSH à des adresses IP spécifiques
✅ Comment empêcher les timeouts de session SSH
9. Conclusion
Cet article a expliqué comment configurer et utiliser SSH sur Ubuntu, des concepts de base aux pratiques de sécurité avancées. Récapitulons les points clés.
Points Clés
1. Bases de SSH
- SSH permet un accès distant sécurisé via une communication chiffrée.
- Plus sécurisé que Telnet ou FTP.
- Les méthodes d’authentification incluent l’authentification par mot de passe et l’authentification par clé publique .
2. Installation du Serveur SSH
- Installez OpenSSH via
sudo apt install openssh-server. - Vérifiez l’état du service avec
systemctl status ssh. - Autorisez l’accès SSH via UFW en utilisant
sudo ufw allow ssh.
3. Configuration de l’Accès SSH
- Connectez-vous avec
ssh username@server-ip-address. - Utilisez l’authentification par clé publique pour une sécurité améliorée.
- Désactivez l’authentification par mot de passe dans
sshd_configsi désiré.
4. Dépannage
- Vérifiez si SSH est en cours d’exécution (
systemctl status ssh). - Spécifiez le port correct s’il a été modifié (
ssh -p 2222 username@IP). - Vérifiez les permissions des clés dans
~/.ssh/authorized_keys.
5. Améliorations de Sécurité
- Désactivez l’authentification par mot de passe et fiez-vous aux clés publiques.
- Changez le port SSH pour réduire les attaques de scan.
- Utilisez Fail2Ban pour bloquer les échecs de connexion répétés.
- Restreignez l’accès SSH à des adresses IP spécifiques lorsque possible.
Ressources d’Apprentissage Supplémentaires
Pour approfondir votre compréhension de SSH, explorez les ressources suivantes :
📚 Documentation Officielle
🛠 Outils Connexes
- PuTTY pour l’accès SSH sur Windows
- Download PuTTY
- MobaXterm pour des fonctionnalités SSH avancées
- MobaXterm Official Site
🎥 Vidéos Recommandées
- Recherchez sur YouTube « Ubuntu SSH setup » pour trouver des tutoriels adaptés aux débutants.
作成した動画を友だち、家族、世界中の人たちと共有…
Étapes Suivantes
Une fois que vous comprenez comment SSH fonctionne, explorez des utilisations plus avancées :
✅ Automatisez la gestion de serveurs en utilisant Ansible via SSH
- Idéal pour gérer plusieurs serveurs efficacement.
✅ Tunneling SSH et redirection de ports
- Utilisez SSH pour sécuriser les connexions de bureau à distance ou créer des tunnels similaires à un VPN.
✅ Surveillez les journaux SSH et améliorez la sécurité
- Utilisez des outils comme
fail2banetlogwatchpour surveiller les activités suspectes.
Pensées Finales
Merci d’avoir lu ce guide jusqu’à la fin ! 🎉
Configurer correctement SSH sur Ubuntu améliore grandement l’efficacité et la sécurité de la gestion à distance.
Au fur et à mesure que vous continuez à apprendre, explorez des techniques avancées comme le tunneling sécurisé et la surveillance proactive pour construire des systèmes encore plus robustes.
Profitez d’une expérience SSH sécurisée et productive ! 🖥️🔐

