SSH : Tout ce que vous devez savoir sur ce protocole de communication réseau
- Damien Tremblay
- 25 avril 2022
Secure Shell (SSH) est un protocole de communication réseau utilisé pour créer une connexion cryptée entre une application cliente locale et un serveur distant. SSH permet au client et au serveur de communiquer en toute sécurité sur un réseau public non sécurisé, tel qu’Internet.
Le terme SSH est parfois utilisé pour désigner les applications utilisées pour communiquer avec un serveur distant. Cependant, SSH fait référence au protocole de communication lui-même, et non à l’application utilisée pour permettre la communication entre le client et le serveur.
Histoire de Secure Shell SSH
SSH a été développé pour la première fois en 1995 par Tatu Ylönen en réponse directe à une attaque de reniflage de mot de passe dirigée contre l’Université de technologie d’Helsinki dont Ylönen était membre de la faculté.
Avant la sortie de SSH, la communication entre une application cliente et un serveur distant sur un réseau non sécurisé était possible grâce à des protocoles tels que rlogin, RSH, Telnet et rexec. Cependant, tous ces protocoles transmettaient des informations, y compris les identifiants de connexion, en clair. Cela signifiait qu’une personne possédant les compétences techniques et l’accès au réseau appropriés pouvait potentiellement intercepter les messages et accéder aux identifiants de connexion au serveur en texte clair.
SSH a été un succès immédiat. La première version, SSH-1, est sortie en tant que logiciel gratuit en juillet 1995 et a été utilisée par 20 000 utilisateurs répartis dans 50 pays en moins de six mois. En l’an 2000, le nombre d’utilisateurs actifs de SSH avait explosé à 2 millions.
Ylönen a fondé la SSH Communications Security en décembre 1995 pour commercialiser et développer davantage le protocole. Alors que la version originale de SSH a été construite à l’aide d’une variété de composants gratuits et publiée en tant que logiciel open source, au fil du temps, SSH est devenu de plus en plus propriétaire.
En 1999, un groupe de développeurs a utilisé la dernière version open source de SSH pour créer une version libre et open source de SSH. Cette version gratuite a évolué pour devenir ce que l’on appelle aujourd’hui OpenSSH et est intégrée aux systèmes d’exploitation Unix, Linux et Windows.
Applications SSH
SSH est utilisé en permanence par les webmasters et les développeurs. Les professionnels utilisent SSH de deux manières principales, qu’ils le sachent ou non.
- RSH, ou accès shell distant, avec une application telle que PuTTY, permet d’accéder à la ligne de commande sur un serveur distant.
- Le protocole de transfert de fichiers sécurisé, ou SFTP, est pris en charge par de nombreux clients FTP populaires, y compris Filezilla, et permet de transférer des fichiers vers et depuis un serveur distant via une connexion sécurisée par SSH.
En plus de RSH et SFTP, SSH est utilisé pour sécuriser plusieurs autres types d’accès au serveur, y compris le transfert et la synchronisation de fichiers rsync, FTP sur SSH (FISH), copie sécurisée (SCP) et accès au réseau privé virtuel (VPN) à part entière à le serveur avec OpenSSH.
Exemple de tunnel SSH – Source
Comment fonctionne SSH ?
Communiquer sur un réseau connecté sécurisé par SSH nécessite que 3 couches différentes fonctionnent à l’unisson :
- Couche transport : Cette couche assure l’échange des clés de chiffrement entre l’application cliente et le serveur distant, et gère la connexion SSH pendant toute la durée de la session.
- Couche d’authentification de l’utilisateur : cette couche permet à l’utilisateur de s’authentifier auprès du serveur à l’aide de différentes méthodes d’authentification. La méthode la plus courante est un mot de passe utilisateur, mais des systèmes d’authentification par mot de passe sans mot de passe et à usage unique peuvent également être utilisés en fonction de l’application client utilisée.
- Couche de connexion : il s’agit de la couche sur laquelle l’interface client SSH fonctionne et comprend des applications d’accès shell telles que PuTTY, des clients FTP sécurisés tels que Filezilla et tous les autres clients SSH.
L’architecture en 3 parties de SSH fait partie de ce qui rend le protocole si populaire. Grâce à sa conception découplée, il peut être utilisé à de nombreuses fins différentes en concevant des applications clientes pour accomplir des tâches spécifiques via une connexion sécurisée avec SSH.
Clients SSH
Comme nous l’avons vu, SSH n’est pas un programme mais un protocole. Mais on en parle généralement comme si c’était le cas.
En fin de compte, c’est une sorte de programme qui permet aux utilisateurs de se connecter à d’autres systèmes et de faire toutes les choses normales qu’ils pourraient faire s’ils étaient assis devant la console de l’autre ordinateur.
De nombreuses options disponibles
La vraie question est donc de savoir quelle application client SSH allez-vous utiliser.
Sur les machines Unix, vous trouverez généralement un programme appelé ssh. La plupart du temps, il s’agit en fait d’OpenSSH . Nous aborderons ci-dessous les principaux clients SSH disponibles.
Mais dans ce guide, nous nous concentrerons sur PuTTY. C’est parce qu’il présente un certain nombre d’avantages par rapport aux autres applications SSH. De plus, il est disponible sur la plupart des systèmes d’exploitation.
Utilisations SSH
Comme nous en avons discuté, SSH est principalement utilisé pour permettre aux utilisateurs d’utiliser des shells de commande sur des machines distantes de manière sécurisée. De cette façon, il remplace de toute évidence Telnet et rlogin.
En fait, sur la plupart des systèmes Unix, les commandes telnet et rlogin sont simplement des liens vers le programme ssh. Pour l’informatique normale, plus personne n’utilise Telnet et rlogin.
Il existe de nombreuses autres façons avancées d’utiliser SSH. Par exemple, il peut être utilisé pour créer un réseau privé virtuel (VPN), qui permet aux utilisateurs de configurer un réseau privé au-dessus d’un réseau public comme Internet en créant un tunnel crypté entre différentes machines.
Mais la principale façon dont le SSH est utilisé en dehors de son utilisation en tant que terminal est son utilisation pour le transfert de fichiers. Secure FTP (SFTP) utilise SSH pour garder les informations transférées privées.
PuTTY
PuTTY a été l’une des premières applications à implémenter SSH. Il s’agit d’une application complète pour communiquer avec d’autres systèmes et pour transférer des fichiers, le tout en toute sécurité.
Le programme de base est distribué sous la forme d’un fichier unique. Vous pouvez simplement télécharger PuTTY et l’exécuter à partir de la ligne de commande. Mais dans sa forme complète, il se compose de plusieurs parties :
- Client SSH avec gestionnaire de connexion (PuTTY);
- FTP sécurisé (PSFTP);
- Copie sécurisée ou SCP (PSCP);
- Agent d’authentification pour stocker les clés privées des autres parties de PuTTY (Pageant) ;
- Générateur de clés RSA et DSA, similaire à ssh-add dans OpenSSH (PuTTYgen).
PuTTY a d’abord été développé pour Microsoft Windows. Au fil des ans, il a été porté sur de nombreux systèmes Unix ainsi que sur Mac OS X.
Le développement se poursuit sur des systèmes plus anciens comme le Mac OS classique. Par conséquent, il est agréable de se familiariser avec, car il est disponible sur à peu près n’importe quel système que vous pourriez utiliser.
Premiers pas avec PuTTY
PuTTY est assez facile à utiliser pour que vous puissiez probablement le télécharger et commencer à l’utiliser. Consultez la page de téléchargement de PuTTY. Mais différentes ressources sont disponibles pour vous aider :
- FAQ PuTTY: la liste des FAQ du projet est longue et répondra à la plupart de vos questions
- Tutoriel Putty : le tutoriel simple de SiteGround qui vous permettra d’être opérationnel sur une machine Windows.
- Utilisation de SSH dans PuTTY (Windows): une introduction de base qui vous montre comment télécharger et installer PuTTY, et commencer.
- Téléchargement et configuration de Putty: Une vidéo très utile de Michael Holtz Jr qui permettra d’installer et de configurer PuTTY sur votre machine. Il fournit également quelques bons conseils pour l’utilisation du programme.
Alternatives à PuTTY
Il existe de nombreuses alternatives à PuTTY. En particulier, OpenSSH qui est le système SSH standard sur les machines Unix. Nous avons divisé les alternatives en versions gratuites et payantes. En général, les versions payantes sont conçues pour les utilisateurs en entreprise, mais pas toujours.
Clients gratuits
- ConnectBot: un client SSH pour Android.
- Dropbear: un client et serveur SSH pour les systèmes d’exploitation basés sur Unix.
- lsh: le client et le serveur SSH du projet GNU.
- OpenSSH: OpenBSD Secure Shell — la norme sur les systèmes d’exploitation Unix.
- PACManager: un outil de gestion de session SSH/FTP/Telnet pour Linux.
- Tera Term: un émulateur de terminal basé sur Windows.
Clients commerciaux payants
Bien que tous ces programmes coûtent de l’argent, beaucoup d’entre eux ont des versions d’essai de 30 jours que vous pouvez télécharger.
- AbsoluteTelnet: une application Windows qui combine des clients SSH et SFTP avec divers émulateurs de terminaux.
- Bitvise: un serveur et un client Windows SSH combinés.
- Private Shell: un client Windows SSH complet qui inclut SFTP et bien plus encore.
- PenguiNet: un client SSH à onglets basé sur Windows pour maintenir plusieurs connexions à la fois.
- Reflection: un émulateur de terminal basé sur SSH.
- SecureCRT: un client SSH disponible pour Windows, Mac et Linux.
- Tectia SSH: le système SSH d’entreprise de la société qui a inventé SSH.
- TN3270 Plus: un émulateur telnet Windows qui inclut la sécurité SSH.
- Token2Shell: un client SSH basé sur Windows avec des fonctionnalités supplémentaires telles que la copie à distance transparente.
- Xshell: un émulateur de terminal SSH basé sur Unix.
- ZOC Terminal: un terminal SSH pour Windows et Mac.
Applications SSH avec interface graphique
SSH est utilisé dans de nombreuses autres applications. Il est plus particulièrement associé à FTP et à d’autres fonctions de transfert de fichiers. Mais il est également utilisé pour des fonctions plus avancées telles que les bureaux distants et la sécurisation des systèmes X-Windows.
- CRAX Commander: un gestionnaire de fichiers Mac propriétaire qui inclut SSH et SFTP.
- Cryptzone MindTerm: une bibliothèque basée sur Java pour inclure SSH dans vos propres applications. Ils offrent également un programme autonome. Il est gratuit pour un usage commercial personnel et limité.
- FileZilla: une application FTP gratuite (client et serveur) qui supporte aussi bien SFTP que FTPS . Si vous faites beaucoup de cloud computing, vous voudrez peut-être consulter FileZilla Pro car il donne accès à Amazon S3, Google Drive, Microsoft OneDrive et de nombreuses autres ressources.
- MobaTerm: une application Xterm améliorée avec SSH intégré. MobaTek propose une version domestique gratuite et une édition professionnelle à prix raisonnable.
- ProxyCap: une application commerciale pour contrôler votre utilisation des serveurs proxy avec support SSH natif sur les ordinateurs Windows et Mac.
- SFTPPlus: un système de transfert de fichiers d’entreprise commerciale comprenant SFTP et SCP sur SSH version 2.
- SmartFTP: un programme commercial basé sur Windows principalement axé sur le transfert de fichiers, mais incluant également l’émulation de terminal avec SSH.
- WinSCP: un FTP gratuit basé sur SSH pour Windows, basé sur PuTTY.
Sommaire des clients SSH disponibles
Pour les particuliers, PuTTY est un excellent choix, car il est disponible sur pratiquement tous les systèmes d’opération sur lesquels vous travaillez. Mais si vous avez des besoins particuliers, de nombreuses options s’offrent à vous.
Ressources
Les ressources SSH abondent sur le Web. Si vous souhaitez savoir comment utiliser SSH pour mieux gérer un serveur distant, voici quelques excellentes ressources à consulter.
SSH: The Secure Shell, The Definitive Guide (2001) de Barrett et Silverman est un excellent livre d’O’Reilly, bien qu’un peu daté. Cependant, il est disponible gratuitement en ligne et le premier chapitre fournit une très bonne introduction technique à SSH. Si vous êtes nouveau sur SSH et souhaitez mieux comprendre les bases techniques de ce protocole de communication, prenez quelques minutes pour revoir le premier chapitre de ce texte.
Comment utiliser SSH pour se connecter à un serveur distant, un article guide en français proposé par Digital Ocean.
SSH : Quoi et comment est un didacticiel de Jonathan Cutrell disponible gratuitement sur Envato Tuts+. Ce didacticiel décrit le processus de configuration de SSH sur un système local et un serveur distant, la configuration d’une connexion sans mot de passe au serveur et montre comment transmettre du code à un référentiel git sur le serveur distant. C’est une ressource particulièrement utile si vous êtes un développeur qui souhaite héberger des référentiels git sur un serveur distant privé.
Le cours Complete Secure Shell de Muhammed Torkey est un cours en ligne disponible sur Udemy. Le cours présente le shell sécurisé, explique son fonctionnement, couvre l’installation et la configuration de SSH et présente une variété d’applications SSH. Après avoir terminé ce cours, vous serez en mesure d’utiliser SSH pour l’accès au terminal distant, le transfert de fichiers, en tant que VPN, et vous saurez également comment rendre SSH aussi sécurisé que possible.
Tutoriel SSH – Administration de serveur de base avec SSH par LearnCode.academy est un bref aperçu rapide de la gestion d’un serveur distant avec SSH. En moins de 10 minutes, cette vidéo YouTube montre comment utiliser SSH pour l’accès au shell, le transfert de fichiers avec rsync et la connexion sans mot de passe.
Le didacticiel SSH pour Linux est un didacticiel détaillé qui remonte à 1999, mais qui a été mis à jour plusieurs fois depuis lors. Il couvre la connexion sans mot de passe et une variété d’applications SSH. Il s’applique aux systèmes basés sur Linux et Unix, y compris Mac OS X. Toutefois, si vous utilisez une machine Windows, consultez plutôt le didacticiel SSH pour Windows.
Plus de guides sur l'hébergement Web
Restez à la pointe avec les meilleurs frameworks Web
Pourquoi créer votre site avec un CMS ? Avantages & Limites
Les indispensables lors de la création d’un site internet