SSH : Qu'est ce que c'est ?
Introduction
Le protocole SSH (Secure Shell) est une méthode sécurisée pour envoyer des commandes à un ordinateur sur un réseau public ou non sécurisé. Pour une information de culture général, le protocole SSH, a été développé en 1995 par Tatun Ylönen, un professeur finlandais qui, à l'époque, souhaitait sécuriser les connexions distantes vers un serveur Unix via des commandes telles que telnet, rlogin, copy, etc.
Grâce à la cryptographie, SSH authentifie les connexions et chiffre les échanges entre les appareils. En plus, SSH permet la "tunnellisation" ou le transfert de port, ce qui signifie que des paquets peuvent traverser des réseaux normalement inaccessibles. SSH est couramment utilisé pour contrôler des serveurs à distance, gérer l'infrastructure, et transférer des fichiers.
Lorsqu'un propriétaire de magasin est en déplacement, il peut transmettre des instructions à ses employés pour garantir le bon fonctionnement de l'établissement en son absence. SSH permet aux administrateurs de gérer leurs serveurs et appareils à distance de la même façon. Les anciens protocoles de gestion à distance comme Telnet transmettaient les commandes des administrateurs en clair, visibles par tous. (Imaginez que le propriétaire du magasin soit mis sur haut-parleur pendant un appel ; tous les clients entendraient ses instructions confidentielles). SSH, en revanche, assure la confidentialité de ces échanges, d'où son nom, Secure Shell.
A quoi sert SSH ?
Voici des exemples concrets d'utilisations possibles de SSH :
- Gestion à distance des serveurs, de l’infrastructure et des ordinateurs des collaborateurs : Les administrateurs système peuvent se connecter de manière sécurisée à des serveurs distants pour effectuer des tâches de configuration, de maintenance et de surveillance à distance.
- Transfert de fichiers en toute sécurité : SSH propose des protocoles comme SFTP (SSH File Transfer Protocol) et SCP (Secure Copy Protocol) pour le transfert sécurisé de fichiers entre des ordinateurs distants, garantissant ainsi la confidentialité et l’intégrité des données.
- Accès à des services dans le cloud sans exposer les ports d’une machine locale à l’Internet : Les utilisateurs peuvent se connecter de manière sécurisée à des services dans le cloud via SSH sans avoir à exposer les ports de leur machine locale à Internet, renforçant ainsi la sécurité de leur infrastructure.
- Connexion à distance aux services d’un réseau privé : SSH permet aux utilisateurs de se connecter de manière sécurisée aux services d’un réseau privé depuis n’importe où dans le monde, assurant ainsi la confidentialité et la sécurité des communications.
- Contournement des restrictions d’un pare-feu : En utilisant le tunneling SSH, les utilisateurs peuvent contourner les restrictions d’un pare-feu en acheminant leur trafic à travers une connexion SSH sécurisée, offrant ainsi un accès sécurisé à des services normalement bloqués par le pare-feu.
Que fait SSH ?
Connexions sécurisées à distance : SSH établit un lien entre l’appareil d’un utilisateur et une machine distante, généralement un serveur, en utilisant le chiffrement pour sécuriser les données qui circulent sur cette connexion. Toute interception ne révélerait que des données brouillées et incompréhensibles sans déchiffrement. Les techniques de chiffrement employées par SSH rendent ce déchiffrement quasi impossible pour des personnes non autorisés.
Fonctionnalité de "tunnellisation" : En réseaux, la "tunnellisation" est une technique permettant de faire transiter un paquet à travers un réseau en utilisant un protocole ou un chemin qu’il n’emprunterait normalement pas. Elle consiste à encapsuler les paquets(1) de données dans des en-têtes supplémentaires, redirigeant ainsi leur destination. Les tunnels SSH utilisent une méthode appelée redirection de port pour acheminer les paquets entre machines. La redirection de port sera détaillée plus bas.
1 : Un « paquet » est une unité de données fragmentée pour faciliter leur transmission sur le réseau.
Quelle est le fonctionnement de SSH ?
1. Établissement de la connexion sécurisée
- Lorsqu'un client (votre ordinateur) souhaite se connecter à un serveur distant via SSH, il envoie une demande de connexion au serveur en utilisant le protocole TCP (port 22 par défaut).
- Le serveur répond avec sa clé publique, qui fait partie d'un mécanisme de cryptographie asymétrique. Cette clé publique permet au client de chiffrer les données de la connexion.
2. Authentification
- Authentification par mot de passe : Le client envoie un mot de passe au serveur pour prouver son identité. Cette méthode est moins sûre que les clés SSH.
- Authentification par clé SSH : Le client utilise une paire de clés SSH (clé privée/clé publique). La clé publique est placée sur le serveur à l’avance, et le client garde sa clé privée. Pour s'authentifier, le serveur envoie un défi au client, qui doit le signer avec sa clé privée. Si la signature est correcte, l'accès est accordé.
3. Chiffrement de la session
- Une fois l’authentification réussie, le client et le serveur établissent une clé de session symétrique pour chiffrer l'ensemble des données échangées. Cette clé est temporaire et renouvelée pour chaque connexion.
- Grâce à cette clé de session, le reste des données échangées est chiffré de bout en bout, ce qui empêche toute interception ou modification de celles-ci par un tiers.
4. Échange de données
- Le client peut désormais envoyer des commandes au serveur distant de manière sécurisée, et recevoir les réponses chiffrées.
- SSH est souvent utilisé pour transférer des fichiers avec des protocoles comme SCP (Secure Copy Protocol) et SFTP (Secure File Transfer Protocol), ou pour effectuer des tunnels SSH, qui redirigent le trafic réseau local à travers la connexion SSH sécurisée.
Voici un petit schéma pour que ça soit plus compréhensif pour vous :
Quel port le protocole SSH utilise-t-il ?
Le port 22 est le port standard utilisé par le protocole SSH. Dans certains cas, les pare-feu bloquent l'accès à plusieurs ports sur les serveurs situés derrière eux, mais laissent le port 22 ouvert. SSH permet donc d'accéder aux serveurs derrière le pare-feu : les paquets envoyés vers le port 22 passent sans être bloqués, puis peuvent être redirigés vers n'importe quel autre port.
Comment se connecter en SSH ?
La commande SSH se compose de 3 parties distinctes :
ssh {user}@{host}
La commande de la clé SSH indique à votre système que vous souhaitez ouvrir une connexion Secure Shell cryptée.
{user} représente le compte auquel vous souhaitez accéder. Par exemple, vous voudrez peut-être accéder à l’utilisateur root, qui est essentiellement synonyme d’administrateur système avec tous les droits de modification de tout sur le système.
{host} fait référence à l’ordinateur ou serveur auquel vous souhaitez accéder. Ceci peut être une adresse IP (par ex. 192.168.1.45) ou un nom de domaine (par exemple, makeinlab.fr).
Bien sûr assurez vous que le port 22 sur votre serveur soit bien ouvert !
Ce qu'il faut retenir
Voici les points clés à retenir sur SSH :
- SSH permet de se connecter de manière sécurisée à des serveurs distants, indispensable pour l'administration à distance.
- Il facilite le transfert de fichiers sécurisé entre ordinateurs / serveurs grâce à des outils comme SCP et SFTP.
- SSH autorise l’exécution de commandes à distance, ce qui est pratique pour automatiser des tâches et gérer des serveurs sans accès physique.
- SSH peut également créer des tunnels sécurisés et rediriger des ports, chiffrant ainsi le trafic de certaines applications pour plus de sécurité.
- Le port par défaut de SSH est le 22.
Conclusion
SSH est un outil polyvalent et indispensable pour la gestion sécurisée de systèmes distants. Ses principales applications, allant de la connexion à distance au transfert de fichiers et à l'exécution de commandes, en font un pilier de l'administration système et de la sécurité réseau. Nous vous remercions d'avoir suivi ce cours !
Pour nous aider à nous améliorer, n'hésitez pas à faire part de vos avis en commentaires ou même à poser vos questions si vous avez besoin d'aide supplémentaire.
Vous pouvez également partager cet article et nous suivre sur Twitter/X :
ainsi que sur Instagram :