Qu'est-ce que SSH ? | Le protocole Secure Shell (SSH)

Le protocole Secure Shell (SSH) permet d'établir des connexions chiffrées à distance entre des ordinateurs. Il permet également la tunnellisation.

Objectifs d’apprentissage

Cet article s'articule autour des points suivants :

  • Définir le protocole Secure Shell (SSH)
  • Décrire le fonctionnement de SSH et ce qui le rend sûr
  • Comprendre la tunnellisation SSH
  • Expliquer les risques pour la sécurité associés à SSH

Contenu associé


Vous souhaitez continuer à enrichir vos connaissances ?

Abonnez-vous à theNET, le récapitulatif mensuel de Cloudflare des idées les plus populaires concernant Internet !

Consultez la politique de confidentialité de Cloudflare pour en savoir plus sur la manière dont nous collectons et traitons vos données personnelles.

Copier le lien de l'article

Qu'est-ce que le protocole Secure Shell (SSH) ?

Le protocole Secure Shell (SSH) est une méthode permettant d'envoyer en toute sécurité des commandes à un ordinateur sur un réseau non sécurisé. SSH a recours à la cryptographie pour authentifier et chiffrer les connexions entre les appareils. SSH permet également la tunnellisation, ou le transfert de port, c'est-à-dire que les paquets peuvent traverser des réseaux qu'il ne pourrait pas traverser autrement. SSH est souvent utilisé pour contrôler des serveurs à distance, dans le but de gérer l'infrastructure et de transférer des fichiers.

Lorsqu'il est en déplacement, le propriétaire d'un magasin peut donner des instructions à ses employés à distance afin de garantir le bon fonctionnement du magasin pendant son absence. De la même manière, SSH permet aux administrateurs de gérer des serveurs et des appareils à distance. Les anciens protocoles de gestion à distance tels que Telnet acheminaient les commandes des administrateurs dans un format visible par tout le monde. (Imaginez que les employés mettent le propriétaire du magasin sur haut-parleur pendant un appel ; tous les clients du magasin pourraient entendre des instructions confidentielles). Contrairement à Telnet, SSH est sécurisé, d'où le nom de Secure Shell.

Rapport
Rapport 2025 Cloudflare Signals

Que fait SSH ?

Connexions chiffrées à distance : SSH établit une connexion entre l'appareil d'un utilisateur et une machine éloignée, souvent un serveur. Il utilise le chiffrement pour brouiller les données qui traversent la connexion. Quiconque intercepterait les données ne trouverait que des données statiques, c'est-à-dire des données aléatoires qui n'ont aucun sens tant qu'elles ne sont pas déchiffrées. (Les méthodes de chiffrement appliquées par SSH rendent le déchiffrement extrêmement difficile pour les personnes extérieures).

Possibilité de tunnellisation : dans le domaine des réseaux, la tunnellisation est une méthode permettant de faire transiter un paquet au travers d'un réseau en utilisant un protocole ou suivant un itinéraire qu'il ne pourrait normalement pas emprunter. La tunnellisation consiste à envelopper les paquets* de données avec des informations supplémentaires, appelées en-têtes, afin de modifier leur destination. Les tunnels SSH ont recours à une technique appelée redirection de port pour transférer des paquets d'une machine à l'autre. La redirection de port est expliquée plus en détail ci-dessous.

*Toutes les données qui traversent un réseau sont décomposées en morceaux plus petits  ces morceaux sont appelés « paquet ».

S'inscrire
Sécurité et rapidité dans toutes les offres Cloudflare

Comment fonctionne SSH ?

TCP/IP

SSH s'exécute parallèlement à la suite de protocole TCP/IP, sur laquelle repose une grande partie de l'Internet. Le TCP/IP transporte et distribue les paquets de données. L'utilisation de TCP distingue SSH des autres protocoles de tunnellisation, dont certains utilisent le UDP, plus rapide mais moins fiable.

Cryptographie à clé publique

SSH est « sécurisé » car il intègre le chiffrement et l'authentification dans le cadre d'un processus appelé cryptographie à clé publique. La cryptographie à clé publique est un moyen de chiffrer des données ou de les signer avec deux clés différentes. Une des deux clés, la clé publique, est accessible à tous. L'autre, la clé privée, est gardée secrète par son propriétaire. Les deux clés étant strictement associées, pour établir l'identité du propriétaire de la clé, il est nécessaire d'avoir en sa possession la clé privée qui correspond à la clé publique.

Ces clés « asymétriques », appelées ainsi parce qu'elles ont des valeurs différentes, permettent également aux deux parties de la connexion de négocier des clés symétriques identiques et partagées pour un chiffrement supplémentaire du canal. Une fois cette négociation terminée, les deux parties utilisent les clés symétriques pour chiffrer les données qu'elles échangent.

Dans une connexion SSH, les deux parties disposent d'une paire de clés publique/privée, et chaque partie authentifie l'autre à l'aide de ces clés. C'est ce qui distingue SSH de HTTPS, qui, dans la plupart des cas, ne vérifie que l'identité du serveur web dans le cadre d'une connexion client-serveur. (Parmi les autres différences, citons le fait que HTTPS ne permet généralement pas au client d'accéder à la ligne de commande du serveur et que les pare-feu bloquent parfois SSH, mais presque jamais HTTPS).

Authentification

Bien que la cryptographie à clé publique permette d'authentifier les appareils connectés selon SSH, un ordinateur correctement sécurisé exigera toujours l'authentification de la personne qui utilise SSH. Il s'agit souvent de saisir un nom d'utilisateur et un mot de passe.

Une fois l'authentification établie, la personne peut exécuter des commandes sur la machine distante comme si elle le faisait sur sa propre machine en local.

Redirection de port SSH, ou «tunnellisation»

La redirection de port est comparable au transfert d'un message entre deux personnes. Bob peut envoyer un message à Alice, qui le transmet à son tour à Dave. De la même manière, la redirection de port transfère les paquets destinés à une adresse IP et à un port d'une machine donnée vers une adresse IP et un port d'une autre machine.

Imaginons par exemple qu'un administrateur veuille apporter une modification à un serveur situé dans un réseau privé dont il assure la gestion, et qu'il veuille le faire à partir d'un site distant. Pour des raisons de sécurité, ce serveur ne reçoit que des paquets provenant d'autres ordinateurs au sein du réseau privé. L'administrateur a alors la possibilité de se connecter à un deuxième serveur au sein du réseau, un serveur qui reçoit sans problème du trafic provenant d'Internet, et d'utiliser la redirection de port SSH pour se connecter au premier serveur. Du point de vue du premier serveur, les paquets de l'administrateur proviennent de l'intérieur du réseau privé.

Utilisation du protocole SSH

Le protocole SSH est présent dans les systèmes d'exploitation Linux et Mac. Sur les machines Windows, il arrive qu'il soit nécessaire d'installer une application client SSH. Sur les ordinateurs Mac et Linux, les utilisateurs peuvent ouvrir l'application Terminal et saisir directement les commandes SSH.

À quoi sert SSH ?

Techniquement, SSH peut transmettre n'importe quelle donnée arbitraire sur un réseau, et la tunnellisation SSH peut être mise en place pour une multitude d'objectifs. Toutefois, les cas d'utilisation les plus courants de SSH sont les suivants :

  • Gestion à distance des serveurs, de l'infrastructure et des ordinateurs des collaborateurs
  • Transfert de fichiers en toute sécurité (SSH est plus sûr qu'un protocole non chiffré tel que FTP)
  • Accès à des services dans le cloud sans exposer les ports d'une machine locale à l'Internet
  • Connexion à distance aux services d'un réseau privé
  • Contournement des restrictions d'un pare-feu

Quel est le port correspondant au protocole SSH ?

Le port 22 est le port par défaut pour le protocole SSH. Parfois, les pare-feu bloquent l'accès à certains ports sur les serveurs situés derrière le pare-feu, mais laissent le port 22 ouvert. SSH est donc utile pour accéder à des serveurs de l'autre côté du pare-feu : les paquets dirigés vers le port 22 ne sont pas bloqués et peuvent ensuite être transférés vers n'importe quel autre port.

Existe-t-il des risques de sécurité associés au protocole SSH ?

L'accès SSH s'accompagnant généralement de privilèges élevés tels que la capacité d'installer des applications sur un serveur ou de supprimer, modifier ou extraire des données, il peut être dangereux s'il est accordé à un acteur malveillant, même à un collaborateur interne bien intentionné. SSH a été utilisé dans un certain nombre d'attaques signalées dans le but d'exfiltrer des données privées, d'ouvrir des portes dérobées vers un réseau sécurisé et d'obtenir l'accès à la racine de serveurs.

SSH peut également passer à travers des pare-feu qui ne bloquent pas le port 22 (comme c'est le cas pour beaucoup), ce qui permet aux acteurs malveillants de se glisser à l'intérieur de réseaux sécurisés.

Les acteurs malveillants peuvent également voler des clés SSH afin d'accéder à des ordinateurs et des serveurs privés. En réalité, la gestion des clés SSH représente un problème de sécurité majeur pour les grandes organisations, car leurs nombreux serveurs peuvent utiliser des milliers, voire des millions de clés, et le suivi et la mise à jour manuels de ces clés sont pratiquement impossibles. Les clés SSH n'expirent pas, sauf si elles font l'objet d'une révocation explicite. Ainsi, lorsqu'un acteur malveillant obtient une clé, il peut bénéficier d'un accès pendant des mois, voire des années.

Quelle est la différence entre SSH et les autres protocoles de tunnellisation ?

Une des principales différences entre SSH et les autres protocoles de tunnellisation concerne la couche OSI sur laquelle ils opèrent. GRE, IP-in-IP et IPsec sont tous des protocoles de la couche réseau. Ils ne connaissent pas les ports (un concept propre à la couche de transport) et opèrent plutôt entre des adresses IP. (La couche OSI exacte de SSH n'est pas strictement définie, mais la plupart des sources la décrivent comme un protocole de la couche applicative, à savoir la couche 7, tel qu'HTTP, FTP et SMTP.)

Une autre différence tient à l'utilisation de TCP par SSH. TCP, comme il est décrit ci-dessus, est un protocole de la couche de transport, et l'un des principaux utilisés sur Internet. Il existe un autre protocole de couche de transport largement utilisé, il s'agit d'UDP, User Datagram Protocol. UDP est un protocole qui assure le transport « au mieux », c'est-à-dire qu'il envoie des paquets sans en garantir la remise. Il est donc plus rapide mais il arrive qu'il perde les paquets. Bien que TCP soit plus lent qu'UDP, il garantit la livraison de tous les paquets dans l'ordre et est donc plus fiable.

IPsec utilise exclusivement UDP au lieu de TCP afin de permettre aux paquets IPsec de traverser les pare-feu. Par conséquent, les tunnels IPsec sont généralement plus rapides que les tunnels SSH, mais peuvent perdre des paquets en transit. GRE et IP-in-IP peuvent être utilisés avec TCP ou UDP.

Enfin, le protocole SSH ne chiffre qu'une application à la fois, et non l'ensemble du trafic entrant et sortant d'un appareil. En cela, SSH se distingue d'IPsec qui crypte tout le trafic réseau, quelle que soit l'application d'où il provient. C'est la raison pour laquelle SSH n'est pas utilisé pour la mise en place de VPN.

Comment Cloudflare contribue-t-elle à rendre SSH plus sûr ?

Bien que SSH fasse peser des risques élevés sur la sécurité, de nombreuses organisations en dépendent pour rester productives. Pour atténuer ces risques, Cloudflare propose le SSH avec Access for Infrastructure dans le cadre de sa plateforme SASE. Ce service applique les concepts Zero Trust au SSH, offrant aux organisations un contrôle granulaire sur la manière dont les utilisateurs peuvent se connecter à leurs serveurs SSH. Il limite ce qu'un utilisateur peut faire, ce qui amoindrit les éventuelles conséquences liées à une utilisation non autorisée de SSH par un acteur malveillant ou un collaborateur interne.

Le SSH associé à Access for Infrastructure élimine également la nécessité de gérer les clés SSH (ce qui suppose une difficulté énorme, comme il est décrit précédemment). À la place, les organisations peuvent utiliser des certificats SSH à la durée de vie limitée, émis par une autorité de certification (CA) gérée par Cloudflare.

Cloudflare permet également aux entreprises de surveiller et de journaliser les accès et l'utilisation du SSH, une caractéristique essentielle à la fois pour la récupération des incidents et la conformité aux règlementations

En savoir plus sur SSH associé à Access for Infrastructure.

FAQ

Qu'est-ce que le SSH ?

Le SSH (Secure Shell) est un protocole réseau qui établit des connexions chiffrées entre des ordinateurs pour un accès distant sécurisé. Il fonctionne sur le port TCP 22 et assume des fonctions d'authentification, de chiffrement et d'intégrité afin de protéger les données transmises sur les réseaux non sécurisés.

Comment les clés SSH authentifient-elles les utilisateurs ?

Les clés SSH permettent d'authentifier les utilisateurs à l'aide de la cryptographie asymétrique, avec une paire de clés publique-privée au lieu des mots de passe traditionnels. La clé privée reste sur le système du client tandis que la clé publique réside sur le serveur, ce qui permet une authentification sécurisée sans transmission des informations d'identification réelles sur le réseau.

Quels sont les avantages de la tunnellisation SSH ?

La tunnellisation SSH crée une connexion sécurisée par laquelle d'autres données peuvent passer, le trafic non chiffré est ainsi efficacement chiffré. Cela permet de sécuriser le transfert de port et d'éviter que les informations sensibles ne soient interceptées pendant la transmission.

Comment comparer SSH et Telnet ?

Telnet transmet des données en texte clair. SSH chiffre toutes les communications afin d'empêcher les attaques par écoute clandestine et les attaques de l'homme du milieu. SSH a efficacement remplacé Telnet comme norme d'accès aux serveurs à distance en raison de ses fonctionnalités de sécurité supérieures.

Quels sont les types de clés SSH couramment utilisés ?

Les types de clés SSH les plus courants sont RSA, ECDSA et EdDSA, qui offrent différents niveaux de sécurité et de performances. Ed25519, une version du schéma de signature EdDSA qui utilise une courbe elliptique, devient de plus en plus populaire car il offre une sécurité renforcée, avec des longueurs de clé plus courtes et des opérations plus rapides.