SSH signifie « Secure Shell ». C’ est un protocole réseau utilisé pour accéder et gérer en toute sécurité des périphériques et des serveurs sur un réseau non sécurisé. Il fournit une forme certaine d’authentification, ainsi qu’une communication cryptée entre deux systèmes, ce qui le rend particulièrement utile dans les environnements où la sécurité est une préoccupation.

SSH est couramment utilisé pour accéder à des serveurs distants via une interface de ligne de commande, mais il peut également être utilisé pour transférer des fichiers en toute sécurité (via SFTP ou SCP). Il utilise des techniques de cryptage pour protéger les informations transmises, ce qui rend difficile pour les tiers d’intercepter ou de manipuler les données pendant la transmission.

L’un des principaux avantages de SSH est sa capacité à authentifier à la fois le client et le serveur, ce qui aide à prévenir les attaques de type « man in the middle » et autres menaces de sécurité. SSH remplace les méthodes d’accès à distance plus anciennes et moins sécurisées, telles que Telnet, qui transmet des informations de manière non chiffrée, ce qui la rend vulnérable à l’interception et au vol de données.

SSH est un protocole indépendant du système d’exploitation, bien qu’il ait été conçu pour les environnements Unix, il est présent dans les systèmes d’exploitation tels que OSX (Mac) et dans les dernières versions de serveurs Microsoft Windows. SSH est, de facto, la norme de connexion aux serveurs par ligne de commande.

Il utilise le port 22/TCP, mais peut être configuré pour écouter et se connecter via différents ports. En effet, il est considéré comme une bonne pratique de sécurité de changer le port d’écoute par défaut pour éviter d’être identifié par des outils de numérisation à distance.

Un bref rappel de l’histoire de SSH et OpenSSH

La trajectoire d’OpenSSH remonte à 1999 et est étroitement liée au logiciel original appelé « SSH » (Secure Shell), créé par Tatu Ylönen en 1995. SSH est un protocole réseau qui permet la connexion sécurisée et le contrôle à distance d’un système via une interface de ligne de commande.

À ses débuts, SSH était un logiciel propriétaire et bien qu’il soit disponible gratuitement pour un usage non commercial, il nécessitait des licences pour une utilisation dans des environnements commerciaux. Cela a conduit à la création de plusieurs implémentations SSH open source pour combler le fossé en termes d’accessibilité et de licences logicielles.

Dans ce contexte, le projet OpenSSH a été initié par Markus Friedl, Niels Provos, Theo de Raadt, et Dug Song en décembre 1999. La création d’OpenSSH a été réalisée en réponse à une série d’événements, notamment la libération du code source du protocole SSH par Tatu Ylönen et les préoccupations concernant la propriété et les licences du logiciel propriétaire existant.

L’objectif initial du projet OpenSSH était de créer un protocole gratuit et open source compatible avec les versions existantes, notamment SSH-1 et SSH-2. OpenSSH cherchait également à contourner les restrictions de licence associées aux implémentations propriétaires de SSH.

Au fur et à mesure que le projet avançait, il est devenu le déploiement de facto de SSH sur les systèmes Unix et Linux. La popularité croissante d’OpenSSH est due à son open source, à sa capacité à fournir une communication sécurisée et à ses fonctionnalités telles que le cryptage fort, l’authentification à base de clé et la capacité de transfert de fichiers sécurisé (SFTP).

OpenSSH a également bénéficié de la collaboration avec la communauté du logiciel libre et open source. Au fil des ans, il a connu des améliorations continues, des mises à jour de sécurité et des extensions fonctionnelles, ce qui en fait un outil essentiel dans la gestion des systèmes distants et la sécurité du réseau.

En résumé, OpenSSH est apparu comme une réponse à la nécessité d’une implémentation SSH open source et gratuite. Au fil des ans, elle a évolué pour devenir l’implémentation SSH la plus utilisée sur les systèmes Unix et Linux et reste fondamentale dans la sécurité de la communication et de la gestion des systèmes dans les environnements distribués.

Exécution de commandes à distance avec SSH

SSH fournit non seulement un moyen d’accéder de manière interactive au shell d’une machine distante, mais peut également être utilisé pour exécuter des commandes à distance sur un système, avec la syntaxe suivante :

ssh utilisateur@host :/chemin/dela/commande

SSH est fréquemment utilisé dans les scripts pour l’automatisation de toutes sortes d’actions et de processus. Pour ce faire, vous avez besoin d’une authentification automatique au moyen de certificats, car par défaut, elle nécessitera la saisie manuelle et interactive d’un mot de passe par l’utilisateur via le clavier.

La sécurité chez SSH

SSH est l’acronyme de Secure Shell, donc la sécurité fait partie de la conception fondamentale de SSH.

SSH a également la capacité de créer des tunnels TCP qui permettent d’utiliser un hôte pour créer une sorte de VPN dédié entre deux IP qui peut être bidirectionnel. C’est ce qu’on appelle « Tunnel TCP » et qui, mal utilisé, peut être un problème de sécurité.

SSH permet l’authentification automatique via des certificats, ce qui permet à un utilisateur de se connecter à un système via SSH sans connaître le mot de passe. Pour ce faire, vous devez copier la clé publique d’un certificat numérique sur le serveur, de sorte que nous identifions cet utilisateur à travers son certificat. Il s’agit d’une option avancée qui permet l’automatisation de l’exécution des commandes via SSH, mais qui présente des risques inhérents à toute automatisation.

Quelles sont les différences entre Telnet et SSH ?

SSH et Telnet sont deux protocoles réseau utilisés pour accéder à des systèmes distants, mais il existe des différences significatives en termes de sécurité et de fonctionnalité.

SSH est la norme actuelle pour l’accès à distance dans tous les types d’environnements. Telnet, d’autre part, est plus ancien et moins sûr, et son utilisation est déconseillée à moins qu’il ne soit impossible d’utiliser SSH.

Sécurité

SSH: Il fournit un environnement sécurisé pour la communication entre deux systèmes. Toutes les données, y compris les noms d’utilisateur et les mots de passe, sont cryptées avant d’être transmises, ce qui rend beaucoup plus difficile pour un attaquant d’intercepter et de comprendre les informations transmises.

Telnet: Il transmet les données, y compris les identifiants de connexion, de manière non chiffrée. Cela signifie que si quelqu’un a accès au réseau entre le client et le serveur, il peut facilement capturer et lire les informations.

Chiffrement

SSH: Il utilise le cryptage pour protéger les données pendant la transmission. Les algorithmes de chiffrement en SSH peuvent être configurés pour répondre aux normes de sécurité les plus récentes.

Telnet: Il ne fournit pas de cryptage, ce qui signifie que toutes les informations, y compris les mots de passe, sont transmises de manière non sécurisée.

Authentification

SSH: Il prend en charge diverses méthodes d’authentification, y compris l’utilisation de mots de passe, la clé publique et l’authentification par jeton.

Telnet: Selon les paramètres, vous n’utilisez généralement que des noms d’utilisateur et des mots de passe pour l’authentification.

Ports

SSH par défaut. SSH utilise le port 22, contrairement à Telnet qui utilise le port 23. Cependant, ces ports peuvent être modifiés à tout moment.

Meilleurs clients de SSH

Voici quelques-uns des clients SSH les plus connus du marché.

OpenSSH

OpenSSH (Linux, macOS, Windows avec WSL) et d’autres systèmes d’exploitation tels que BSD ou des périphériques de communication prenant en charge une version d’OpenSSH.

OpenSSH est une implémentation gratuite et open source du protocole SSH. Il est préinstallé sur la plupart des distributions Linux et est largement utilisé dans les environnements Unix.

Il est hautement fiable, sécurisé et est le choix par défaut dans de nombreux systèmes d’exploitation basés sur Unix, en plus d’être 100 % gratuit.

Putty

PuTTY est un client SSH gratuit et open source pour Windows et donc très populaire. Bien qu’initialement conçu pour Windows, il existe également une version non officielle appelée « PuTTY for Mac » qui fonctionne sur macOS, il existe également des versions alternatives pour Linux.

Il est léger, facile à utiliser et peut être exécuté comme une application portable sans installation. Cependant, il manque d’une interface puissante, ne permet pas l’enregistrement de séquences, et en général, il manque de fonctionnalités plus avancées que vous pouvez trouver dans d’autres clients « visuels » de SSH. Il ne dispose pas non plus d’interface spécifique pour le transfert de fichiers.

Parmi toutes les options, PuTTY est la plus basique, mais au moins c’est une interface visuelle, contrairement au client SSH standard du système d’exploitation qui est gratuit, mais où toutes les « fonctionnalités » sont basées sur des lignes de commande.

Téléchargements et mises à jour

Il peut être téléchargé à partir de sa web, bien qu’il existe plusieurs sites parallèles proposant des versions alternatives pour Mac et même Linux.

Prix et licences

Il est gratuit et sous licence open source, vous pouvez donc modifier son code et le compiler vous-même.

BitVise

Bitvise SSH Client est un choix solide pour les utilisateurs de Windows à la recherche d’un client SSH facile à utiliser et sécurisé. Sa combinaison d’une interface intuitive, de fonctions de transfert de fichiers avancées et d’une sécurité robuste en fait un outil apprécié pour la gestion de systèmes distants et le transfert de fichiers sécurisé.

Serveur SSH

BitVise propose à la fois un client SSH et un serveur SSH. Généralement, les systèmes Windows n’utilisent pas SSH, ce qui peut donc être une très bonne option pour le déployer, même si les dernières versions de Microsoft Windows Server l’implémentent déjà. C’est une excellente option pour déployer SSH sur les anciennes versions de Windows, car il prend en charge un large choix de versions, pratiquement à partir de Windows XP :

  • Windows Server 2022
  • Windows 11
  • Windows Server 2019
  • Windows Server 2016
  • Windows 10
  • Windows Server 2012 R2
  • Windows Server 2012
  • Windows 8.1
  • Windows Server 2008 R2
  • Windows Server 2008
  • Windows Vista SP1 or SP2
  • Windows Server 2003 R2
  • Windows Server 2003
  • Windows XP SP3

Tunnels SSH et renvoi de ports

Il permet la configuration de tunnels SSH et le transfert de ports, ce qui est utile pour rediriger le trafic réseau en toute sécurité via des connexions SSH.

Gestion avancée des sessions

Bitvise SSH Client offre des options avancées pour la gestion des sessions, y compris la possibilité d’enregistrer les paramètres de session pour un accès rapide et facile aux serveurs fréquemment utilisés.

Enregistrement des sessions et audit

Il fournit un journal détaillé des sessions, ce qui peut être utile à des fins d’audit et de suivi des activités.

Prise en charge du proxy

Bitvise SSH Client prend en charge plusieurs types de proxy, permettant aux utilisateurs de contourner les restrictions réseau et de se connecter via des serveurs proxy.
Téléchargements et mises à jour

Une version d’évaluation de 30 jours peut être téléchargée sur leur site Web https://www.bitvise.com.

Prix et licences

Pour Windows uniquement, son prix avoisine les 120 USD par an.

SecureCRT

Il est disponible sur toutes les plateformes : Windows, macOS et Linux. Une démo fonctionnelle peut être téléchargée depuis son site Web à l’adresse https://www.vandyke.com.

SecureCRT est un client commercial qui prend en charge plusieurs protocoles, y compris SSH. Il fournit une interface graphique avancée, des fonctions de script et d’automatisation, et est largement utilisé dans les environnements d’entreprise.

Simulation de terminal

Il offre une simulation de terminal pour une grande variété de types, y compris VT100, VT102, VT220, ANSI, entre autres. Cela garantit une compatibilité efficace avec divers systèmes et appareils distants.

Transfert de fichiers sécurisé

SecureCRT prend en charge les protocoles de transfert de fichiers sécurisés, tels que SCP (Secure Copy Protocol) et SFTP (Secure File Transfer Protocol). Cela permet aux utilisateurs de transférer des fichiers en toute sécurité entre les systèmes locaux et distants. Pour la gestion des transferts de fichiers, il utilise un produit supplémentaire appelé SecureFX (avec des frais de licence supplémentaires).

Automatisation et scripts

Il facilite l’automatisation des tâches en exécutant des scripts. Il prend en charge plusieurs langages de script, tels que VBScript, JScript et Python, offrant une flexibilité dans l’automatisation des processus.

Gestion de session efficace

SecureCRT offre une interface de gestion de session efficace qui permet aux utilisateurs d’organiser et d’accéder facilement aux connexions précédentes. Il permet également l’importation et l’exportation de sessions pour un transfert facile des configurations entre les systèmes. Il permet la configuration avancée des sessions, y compris les options d’authentification, la configuration des touches de fonction, le transfert des ports, entre autres. Cela donne aux utilisateurs un contrôle précis sur leurs sessions à distance.

Intégration de clés SSH

SecureCRT prend en charge l’authentification par clé, ce qui signifie que les utilisateurs peuvent gérer et utiliser des clés SSH pour une authentification sécurisée sans dépendre de mots de passe.

Prise en charge de protocoles supplémentaires

En plus de SSH, SecureCRT est également compatible avec d’autres protocoles tels que Telnet, rlogin et Serial. Cela en fait un outil polyvalent pour divers environnements réseau.

Prix et licences

Une version complète pour un utilisateur, y compris les fonctionnalités de transfert sécurisé (SecureFX), est proposée pour environ 120 $ par an.

ZOC

ZOC Terminal est un client SSH et un émulateur de terminal qui offre des fonctionnalités avancées aux utilisateurs qui ont besoin d’un outil puissant et polyvalent pour travailler avec des connexions SSH à distance. Il est également compatible avec d’autres protocoles tels que Telnet et Rlogin, ce qui étend son utilité dans divers environnements non seulement en tant que client SSH mais aussi en tant que client Telnet.

ZOC est compatible avec Windows et macOS et publie régulièrement des versions mises à jour. Une version de démonstration peut être téléchargée depuis son site Web à l’adresse https://www.emtec.com.

Fonctions de simulation de terminal

ZOC est compatible avec plusieurs simulations de terminaux, telles que xterm, VT220, TN3270, et plus encore. Cela permet aux utilisateurs de se connecter à une variété de systèmes distants et de mainframes.

Transfert de fichiers sécurisé

Il comprend des fonctionnalités de transfert de fichiers sécurisées (et non sécurisées), telles que FTP, SFTP (SSH File Transfer Protocol) et SCP (Secure Copy Protocol), permettant aux utilisateurs de transférer des fichiers en toute sécurité entre le système local et distant. La fonctionnalité est incluse dans le même produit.

Automatisation et scripts

ZOC facilite l’automatisation des tâches en exécutant des scripts. Il prend en charge plusieurs langages de script, tels que VBScript, JScript et Python, offrant une flexibilité dans l’automatisation des processus. Il permet également d’enregistrer une combinaison de touches et de la lire pour, par exemple, automatiser des sessions de connexion nécessitant l’utilisation de sudo ou de su.

Gestion des sessions

La capacité de gérer et d’organiser des sessions est cruciale pour ceux qui travaillent avec plusieurs connexions. ZOC offre une interface de gestion de session efficace qui permet aux utilisateurs d’organiser et d’accéder facilement aux connexions précédentes. Vous pouvez avoir un catalogue de systèmes où vous pouvez vous connecter facilement.

Prix et licences

La licence de base avoisine les 80 USD, mais sa version gratuite permet de travailler confortablement, à l’exception du pop up un peu ennuyeux du démarrage.

Pandora RC : Alternative à l’utilisation de SSH

Pandora RC (anciennement eHorus) est un système de gestion d’équipe pour MS Windows®, GNU/Linux ® et Mac OS® qui permet d’accéder aux ordinateurs enregistrés où qu’ils se trouvent, à partir d’un navigateur, sans avoir de connectivité directe à vos appareils de l’extérieur.

Sécurité

Pour plus de sécurité, chaque agent, en le configurant, peut avoir un mot de passe individuel qui n’est pas stocké sur les serveurs centraux de Pandora RC, mais chaque fois que l’utilisateur souhaite accéder à cette machine, il devra entrer de manière interactive.

Accès à distance sans connexion directe

L’un des problèmes les plus courants de SSH est que vous devez pouvoir accéder à l’adresse IP du serveur. Avec Pandora RC, c’est le serveur qui se connecte à un service cloud et qui est ainsi disponible de n’importe où, sans avoir besoin d’un VPN ou de règles complexes dans les pare-feu.

Intégration avec Pandora FMS

Il s’intègre nativement au logiciel de supervision Pandora FMS, de sorte qu’il est possible non seulement de superviser les serveurs, mais d’y accéder directement depuis la même interface, sans avoir à installer des clients SSH, à mémoriser des mots de passe ou à générer des doublons.

Prix et licences

Gratuit jusqu’à 5 appareils. Il existe des licences d’utilisation pour un nombre illimité de machines à partir de 19 € / mois. Plus d’informations sur le site web : https://pandorafms.com/en/remote-control/prices/

Shell à distance et bureau à distance tout-en-un

Pandora RC dispose d’un système de contrôle à distance via un accès visuel au bureau. Dans les deux cas, une interface Web est utilisée pour fonctionner avec le serveur distant, que ce soit Windows, MacOS ou Linux. Il fournit également un mécanisme de transfert de fichiers et de gestion des processus/services. Le tout intégré dans une application WEB :

Exemple de Shell distant sur un système Mac :

Exemple d’un bureau à distance sur un système Mac :

Exemple de partage de fichiers sur un système Linux :

Shares