SSH est un protocole réseau sécurisé permettant d’accéder à des ordinateurs distants dans un réseau.

Les ordinateurs communiquent entre eux par l’intermédiaire des réseaux. Les chercheurs en réseau ont donc défini un ensemble de règles pour communiquer avec d’autres machines et ont commencé à développer des protocoles tels que Telnet, qui permettent à un utilisateur de prendre le contrôle d’un autre ordinateur.

Mais ces protocoles ne sont pas sécurisés, c’est-à-dire que n’importe qui au milieu du réseau peut intercepter et lire les données transférées. Au milieu des années 90, un protocole plus sûr, appelé ssh , a été introduit comme successeur fiable du protocole Telnet.

secure shell

Si vous êtes un développeur de logiciels ou un administrateur système travaillant dans une industrie, vous avez peut-être utilisé ssh, au moins une fois. Si ce n’est pas le cas, apprenez-le maintenant, car il s’agit de l’une des compétences essentielles à connaître absolument.

Qu’est-ce que SSH ?

SSH ou Secure Shell ou Secure Socket Shell est un protocole réseau qui permet d’accéder et de communiquer en toute sécurité avec des machines distantes (principalement des serveurs distants).

Il fournit un cryptage fort et est largement utilisé par les administrateurs de réseau et les développeurs pour gérer des systèmes et des applications distants, exécuter des commandes, partager des fichiers, etc.

Nécessité de SSH

SSH a été créé en 1995 pour résoudre les problèmes de sécurité rencontrés par les protocoles d’accès à distance non sécurisés tels que rlogin, rsh, Telnet.

Parlons maintenant de Telnet, qui signifie Teletype Network et qui a été développé en 1969. Il s’agit d’un simple outil de ligne de commande qui s’exécute sur votre ordinateur pour accéder à un serveur distant (n’importe où dans le monde). Il vous permet d’envoyer des commandes à exécuter sur ce serveur, comme si vous étiez assis juste devant le serveur distant (même à des kilomètres de celui-ci). Telnet transmet et reçoit des messages en texte clair sur un réseau.

Les commandes que vous exécutez peuvent être des programmes, des répertoires, des fichiers créés/supprimés/transférés, des services démarrés/arrêtés, etc.

Le problème de la connexion d’une autre machine à un réseau est que les données transmises passent par de nombreux réseaux. Entre-temps, certains d’entre eux peuvent ne pas être sécurisés et les données transmises peuvent être interceptées, voire modifiées avant d’atteindre la machine cible.

Encrypted Communication

Dans les premiers temps, lorsque la sécurité n’était pas aussi importante, toutes les communications se faisaient en texte clair. Par conséquent, les données transmises sur l’internet entre le client et le serveur peuvent être facilement interceptées. Et elles peuvent être lues car les messages ne sont pas cryptés.

Par conséquent, les protocoles en texte clair sont extrêmement peu sûrs et ne doivent jamais être utilisés pour la transmission de données sensibles telles que les mots de passe, les secrets, etc. C’est pourquoi SSH est considéré comme une alternative sécurisée aux anciens protocoles d’accès à distance.

Comment fonctionne SSH ?

SSH utilise une architecture client-serveur pour une communication sécurisée sur le réseau en connectant un client ssh au serveur ssh. Par défaut, le serveur ssh écoute le port TCP standard 22 (vous pouvez le modifier pour une meilleure sécurité).

Il utilise une technique de cryptographie à clé publique pour authentifier le client et le serveur. En outre, le protocole utilise des algorithmes de chiffrement et de hachage symétriques puissants pour l’échange de messages entre le client et le serveur afin de garantir la confidentialité et l’intégrité des données.

SSH Encrypted Communication

Linux est le système d’exploitation le plus utilisé pour les serveurs distants en raison de sa sécurité et de sa durabilité. De nombreux serveurs utilisant le système d’exploitation Linux sur l’internet fonctionnent depuis des années sans défaillance ni même redémarrage.

La plupart des sessions SSH (période au cours de laquelle nous accédons au serveur distant) ne comportent que les deux opérations suivantes :

  • Authentification
  • Exécution de commandes

Les serveurs SSH peuvent authentifier les clients à l’aide de différentes méthodes.

Les deux méthodes les plus courantes sont les suivantes :

  • Basée sur un mot de passe
  • Basée sur une clé

L’authentification par mot de passe est la méthode par défaut utilisée pour l’authentification des clients installés sur OpenSSH. Il s’agit de l’authentification ssh la plus basique, mais pas la plus sûre.

Même si les mots de passe sont envoyés au serveur de manière sécurisée, les attaques modernes par force brute peuvent contourner l’authentification.

L’authentification par clé améliore encore la sécurité du système en générant des paires de clés SSH, ce qui s’avère être une alternative fiable et sûre.

Une fois que le serveur a authentifié le client avec succès, une connexion sécurisée est établie entre eux.

Accès au serveur distant à l’aide de SSH

Si vous êtes un utilisateur Mac/Linux, vous pouvez directement utiliser le terminal pour taper et exécuter des commandes ssh, car OpenSSH est déjà installé par défaut.

Si vous utilisez Windows, vous devez installer un émulateur de terminal tiers pour exécuter les commandes ssh. PuTTY est le client ssh le plus populaire pour le système d’exploitation Windows.

Pour vous connecter à un serveur distant à l’aide de SSH, vous devez connaître au moins deux choses.

  • l’hôte du serveur
  • nom d’utilisateur

La syntaxe de la commande ssh de base est la suivante :

$ ssh <nom-utilisateur> @ <hôte> -p <port-no>

Le nom d’utilisateur est le nom d’utilisateur de la machine distante à laquelle nous essayons de nous connecter (et non l’utilisateur de votre machine locale), et l’hôte est soit une adresse IP, soit un nom de domaine.

Prenons un exemple de connexion à un serveur distant en utilisant le site web OverTheWire. Il s’agit d’un site web gratuit de défis de wargames.

Maintenant, connectons-nous au défi bandit en utilisant ssh. Il s’agit de l’un des défis disponibles sur le site Web qui enseigne comment se connecter à l’aide de SSH.

Informations d’identification :

nom d’utilisateur et mot de passe : bandit0
hôte et port : bandit.labs.overthewire.org, 2220

Lorsque vous tapez la commande suivante et que vous appuyez sur Entrée :

$ ssh bandit0@bandit.labs.overthewire.org -p 2220

Le système vous demandera le mot de passe à des fins d’authentification. Tapez le mot de passe et appuyez sur la touche Entrée :

SSH Login Example

Si le mot de passe saisi est correct, vous avez réussi à vous connecter au serveur distant et votre terminal ressemblera à l’image ci-dessus.

Vous pouvez maintenant utiliser le terminal de la machine distante pour taper et exécuter vos commandes et effectuer les opérations dont vous avez besoin.

Lorsque vous souhaitez mettre fin à la session ssh, tapez la commande exit :

exit

SSH session end

Vous obtiendrez le message Connexion fermée” lorsque vous aurez réussi à vous déconnecter de la session ssh.

Conclusion

La principale raison de la popularité de SSH est que toute la communication entre le serveur et le client est cryptée.

La plupart des gens pensent que l’utilisation de SSH est complexe et qu’il n’est pas facile d’acquérir des connaissances sur son fonctionnement, mais c’est plus simple que vous ne le pensez. Vous avez maintenant une compréhension de base de SSH, de son fonctionnement, de ses aspects sécuritaires et des raisons pour lesquelles il joue un rôle vital dans la communication.

Nous allons maintenant explorer certaines des ressources disponibles pour devenir administrateur système.