SSH 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é présenté comme un successeur fiable du protocole telnet.
Si vous êtes un développeur de logiciels ou un administrateur système travaillant dans un secteur, vous avez peut-être utilisé ssh au moins une fois. Si vous ne l'avez pas fait, apprenons-le maintenant, car c'est l'une des compétences essentielles à connaître.
What is SSH?
SSH or Secure Shell or Shell de socket sécurisé 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 offre cryptage fort et est largement utilisé par administrateurs réseau et développeurs pour gérer les systèmes et applications distants, exécuter des commandes, Partager des fichiers, etc.
Need of 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 connexion, rsh, Telnet.
Parlons maintenant de Telnet, Qui veut dire Réseau de télétype développé en 1969. Il s'agit d'un simple outil en 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 clair 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. En attendant, certaines d'entre elles pourraient être non sécurisées et les données de transmission 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 texte clair sont extrêmement peu sûrs et ne sont jamais utilisés pour la transmission de données sensibles comme mots de passe, 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.
How does it work?
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 changer cela 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 fort cryptage symétrique & algorithmes de hachage pour l'échange de messages entre le client et le serveur afin d'assurer 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 durabilité. De nombreux serveurs qui utilisent 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 (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 les plus populaires sont :
- Basé sur un mot de passe
- Basé sur des clés
Authentification par mot de passe est la méthode par défaut utilisée pour l'authentification pour OpenSSH clients installés. 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 peut contourner l'authentification.
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ère ê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.
Accessing Remote Server Using 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 d'émulateur de terminal tiers pour exécuter des 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 savoir 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>
La solution 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 le hôte est soit une adresse IP, soit un nom de domaine.
Regardons un exemple de connexion à un serveur distant en utilisant le OverTheWire site Internet. C'est un site de défi de wargame gratuit.
Maintenant, connectons-nous au bandit défi en utilisant ssh. C'est l'un des défis disponibles sur le site Web qui enseigne comment se connecter en utilisant SSH.
De vérification des pouvoirs:
Identifiant Mot de passe: bandit0
port hôte: bandit.labs.overthewire.org, 2220
Lorsque vous tapez la commande suivante et appuyez sur Entrée :
$ ssh bandit0@bandit.labs.overthewire.org -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 sortie commander:
$ exit
Vous recevrez un message, "Connexion fermée" lorsque vous vous déconnectez avec succès de la session ssh.
Conclusion
La principale raison de la popularité de SSH est 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'il n'est pas facile de comprendre 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, des aspects de sécurité qui le sous-tendent et pourquoi il joue un rôle vital dans la communication.
Ensuite, explorez certaines des ressources pour devenir administrateur système.