Qu'est-ce que SSH et comment ça marche ?
Publié: 2021-08-15SSH est un protocole réseau sécurisé permettant d'accéder à des ordinateurs distants dans un réseau.
Les ordinateurs communiquent entre eux via des réseaux. Par conséquent, les chercheurs en réseau ont défini un ensemble de règles pour communiquer avec d'autres machines et ont commencé à développer des protocoles comme Telnet ; en utilisant cela, un utilisateur peut prendre le contrôle d'un autre ordinateur.
Mais ils 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écurisé nommé ssh a été introduit en tant que successeur fiable du protocole telnet.
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, apprenons-le maintenant, car c'est l'une des compétences essentielles à connaître.
Qu'est-ce que SSH ?
SSH ou Secure Shell ou Secure Socket Shell est un protocole réseau qui nous aide à accéder et à 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 réseau et les développeurs pour gérer des systèmes et des applications distants, exécuter des commandes, partager des fichiers, etc.
Besoin 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 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). Et envoyez des commandes à exécuter sur ce serveur, comme si vous étiez assis juste devant le serveur distant (même à des kilomètres du serveur). Telnet transmet et reçoit des messages en texte brut sur un réseau.
Les commandes que vous exécuteriez pourraient consister à exécuter des programmes, créer des répertoires, créer/supprimer/transférer des fichiers, démarrer/arrêter des services, etc.
Le problème avec la connexion d'une autre machine dans un réseau est que les données transmises passeront par de nombreux réseaux. Dans l'intervalle, certaines d'entre elles pourraient ne pas être sécurisées et les données transmises pourraient être interceptées, éventuellement modifiées avant qu'elles n'atteignent la machine cible prévue.
Au début, où la sécurité n'était pas si importante, toutes les communications se faisaient en texte clair. Par conséquent, les données transmises sur Internet entre le client et le serveur peuvent être facilement interceptées. Et il peut être lu car les messages ne sont pas cryptés.
Par conséquent, les protocoles en clair sont extrêmement peu sûrs et ne sont jamais utilisés pour la transmission de données sensibles comme les mots de passe, les secrets, etc. Par conséquent, SSH est considéré comme une alternative sécurisée aux protocoles de réseau d'accès à distance hérités.
Comment ça marche?
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 s'authentifier entre le client et le serveur. De plus, le protocole utilise des algorithmes de cryptage 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.
Linux est le système d'exploitation largement 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 Internet fonctionnent depuis des années sans beaucoup d'échecs ni même redémarrés.

La plupart des sessions SSH (une période pendant laquelle nous accédons au serveur distant) n'auront que les deux opérations suivantes :
- Authentification
- Exécution de la commande
Les serveurs SSH peuvent authentifier les clients à l'aide de diverses méthodes.
Et les deux manières populaires sont :
- Basé sur un mot de passe
- Basé sur la clé
L' authentification basée sur le mot de passe est la méthode par défaut utilisée pour l'authentification des clients installés OpenSSH. C'est l'authentification ssh la plus basique mais pas la plus sécurisée.
Même si les mots de passe sont envoyés au serveur en toute sécurité, les attaques par force brute modernes 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, qui s'avèrent être une alternative fiable et sécurisée.
Une fois que le serveur a authentifié le client avec succès, une connexion sécurisée est établie entre eux.
Accéder 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 êtes un utilisateur Windows, vous devez installer un client é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.
- hôte du serveur
- Nom d'utilisateur
La syntaxe de la commande ssh de base est :
$ ssh <user-name> @ <host> -p <port-no>
Le nom d'utilisateur est le nom d'utilisateur de la machine distante que nous essayons de connecter (et non l'utilisateur sur votre machine locale), et l' hôte est soit une adresse IP, soit un nom de domaine.
Examinons un exemple de connexion à un serveur distant à l'aide du site Web OverTheWire. C'est un site Web de défi de wargame gratuit.
Maintenant, connectons-nous au défi bandit en utilisant ssh. C'est l'un des défis disponibles sur le site Web qui enseigne comment se connecter à l'aide de SSH.
Identifiants:
nom d'utilisateur et mot de passe : bandit0
hôte et port : bandit.labs.overthewire.org , 2220
Lorsque vous tapez la commande suivante et appuyez sur Entrée :
$ ssh [email protected] -p 2220
Il vous demandera le mot de passe à des fins d'authentification. Tapez maintenant le mot de passe et appuyez sur Entrée :
Si le mot de passe saisi est correct, vous êtes connecté avec succès 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 vos opérations nécessaires.
Lorsque vous souhaitez mettre fin à la session ssh, tapez la commande exit :
$ exit
Vous recevrez un message, " Connexion fermée" lorsque vous vous déconnecterez avec succès 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 supposent que l'utilisation de ssh est complexe et qu'acquérir des connaissances sur son fonctionnement n'est pas facilement compréhensible, mais c'est plus simple que vous ne le pensez. Vous avez maintenant une compréhension de base de SSH, de son fonctionnement, des aspects de sécurité qui le sous-tendent et de la raison pour laquelle il joue un rôle vital dans la communication.
Ensuite, explorez certaines des ressources pour devenir administrateur système.