Merci d'avoir aimé mes articles sur SSH jusqu'à présent. D'après les statistiques, beaucoup d'entre vous s'intéressent à SSH, mais il semble qu'il manque un guide complet sur "comment le configurer en toute sécurité dès le début ?".
SSH (Secure Shell) n'est pas simplement un outil d'accès à distance. Pour les développeurs, c'est une bouée de sauvetage pour la gestion des serveurs, et pour les utilisateurs normaux, c'est une arme puissante qui permet d'accéder à son ordinateur de n'importe où et à tout moment.
Aujourd'hui, j'aborderai non seulement les concepts de base de SSH, mais aussi les réglages de sécurité et astuces incontournables à respecter du point de vue des praticiens pour commencer "correctement".
1. Qu'est-ce que SSH et pourquoi est-ce essentiel ?
SSH signifie Secure Shell et est un protocole qui vous permet de vous connecter à un autre ordinateur sur un réseau, d'exécuter des commandes et d'envoyer des fichiers. L'élément clé est 'le chiffrement'. Contrairement à Telnet, toutes les communications sont chiffrées et donc, même si quelqu'un intercepte les données, il ne peut pas comprendre le contenu.
-
Pour les développeurs : C'est essentiel pour le déploiement et la gestion de serveurs cloud comme AWS, Azure, etc.
-
Pour les non-développeurs : Vous pouvez contrôler en toute sécurité des ordinateurs, NAS, Raspberry Pi, etc., depuis l'extérieur.
2. Configuration du serveur (Remote) : Le premier pas vers la sécurité
Installer openssh-server sur le serveur (à distance) n'est que le début. Utiliser la configuration par défaut juste après l'installation est extrêmement vulnérable en termes de sécurité.
Le fichier de configuration se trouve sous Linux à /etc/ssh/sshd_config. Vous devez modifier ce fichier pour mettre en place au moins un minimum de mesures de sécurité.
Modification du fichier de configuration :
sudo nano /etc/ssh/sshd_config
Configuration pratique 1 : Changer le port par défaut (Port Change)
SSH utilise le port 22 dans le monde entier. Les bots automatisés des hackers ciblent uniquement le port 22. Changer simplement le numéro de port peut vous permettre d'éviter plus de 90 % des attaques par force brute (Brute Force).
# Port 22 <-- Commenter ou supprimer
Port 22022 # Il est recommandé d'utiliser un numéro de port aléatoire au-dessus de 1024
Configuration pratique 2 : Désactiver l'authentification par mot de passe (Password Authentication No)
Les mots de passe peuvent à un moment donné être compromis. Il est nécessaire d'utiliser la méthode de clé SSH, qui offre un niveau de sécurité bien plus élevé, et après la configuration de la clé, l'accès par mot de passe doit être complètement bloqué.
PasswordAuthentication no
⚠️ Attention : Cette configuration doit être appliquée uniquement après avoir vérifié que l'accès par clé SSH fonctionne correctement. Sinon, l'accès au serveur peut être complètement bloqué.
3. Configuration locale (Client) : Création et inscription des clés (Key)
Il est maintenant temps de créer la clé pour accéder au serveur depuis mon PC (local). À partir de ce moment, l'expertise de l'utilisateur est nécessaire.
Astuces 1 : Génération de clés identifiables (-C option)
Lorsque vous générez une clé, ne vous contentez pas d'écrire ssh-keygen. Lorsque vous aurez de nombreuses clés, il sera difficile de savoir quelle clé est utilisée où. Assurez-vous d'utiliser l'option commentaire (Comment).
# -t ed25519 : Méthode de chiffrement récente (excellente vitesse et sécurité)
# -C : Ajoute un commentaire à la fin du fichier clé pour aider à l'identification.
ssh-keygen -t ed25519 -C "ma-clé-serveur-macbook-pro-domicile"
La clé générée est sauvegardée dans le répertoire ~/.ssh/. (id_ed25519 : clé privée, id_ed25519.pub : clé publique)
Astuces 2 : La méthode de copie de clé la plus simple (ssh-copy-id)
Vous devez enregistrer la clé publique (pub) que vous avez créée sur le serveur. Terminez cela avec une seule ligne de commande sans le tracas de copier et coller du texte.
# Syntaxe : ssh-copy-id -i [chemin de la clé publique] [compte]@[adresse du serveur] -p [port]
ssh-copy-id -i ~/.ssh/id_ed25519.pub user@192.168.1.100 -p 22022
# Si le serveur est connecté via un domaine DNS, vous pouvez utiliser le DNS au lieu de l'IP. Cela fonctionne grâce au serveur DNS configuré sur votre routeur qui le convertit en IP.
ssh-copy-id -i ~/.ssh/id_ed25519.pub alice@wonderland.com -p 22022
Cette commande ajoute automatiquement votre clé publique au fichier ~/.ssh/authorized_keys du serveur.
Astuces 3 : Points à surveiller lors de l'enregistrement manuel (problème de permissions)
Si vous ne pouvez pas utiliser ssh-copy-id et devez enregistrer manuellement, faites attention aux permissions des fichiers. SSH refuse la connexion pour des raisons de sécurité si les permissions sont trop larges.
Après vous être connecté au serveur, vérifiez ce qui suit dans le répertoire personnel :
-
Dossier
.ssh: Permission700(lecture/écriture/exécution uniquement pour moi) -
Fichier
authorized_keys: Permission600(lecture/écriture uniquement pour moi)
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
Pour en savoir plus sur les permissions du système de fichiers Linux, cliquez ici pour plus de détails !
4. Test d'accès et étapes suivantes
Une fois tous les préparatifs terminés, essayez de vous connecter. Puisque vous avez changé de port, vous devez utiliser l'option -p.
ssh -p 22022 user@192.168.1.100
# Peu importe que ce soit une IP LAN, une IP WAN ou un domaine DNS. Tant que cela pointe correctement vers le serveur, peu importe.
Si vous vous connectez sans demander de mot de passe, c'est un succès. Maintenant, complétez votre sécurité en définissant PasswordAuthentication no dans le fichier sshd_config du serveur.

Vous avez maintenant un environnement pour contrôler votre serveur en toute sécurité. Mais le monde de SSH est vaste. Continuez à apprendre comment automatiser les connexions, gérer des fichiers et intégrer des outils de sécurité plus puissants dans les articles suivants.
📖 Guides avancés recommandés à lire ensemble
-
Guide d'utilisation de SSH : De la rédaction des commandes aux options utiles !
-
Premiers pas dans l'automatisation des connexions SSH : maîtrise du fichier de configuration
Dans le prochain article, nous verrons comment accéder au serveur avec un seul mot, sans options complexes, grâce au fichier SSH Config, un sujet qui confuse beaucoup de gens et est abordé dans l'article numéro 2. Si vous avez trouvé cela utile, veuillez également consulter d'autres articles !
Aucun commentaire.