Qu'est-ce que SSH ?

Description du Secure Shell (SSH) pour l'administration de serveurs à distance.

SSH (« Secure Shell ») est un protocole réseau de la couche applicative permettant l'administration à distance d'un système d'exploitation et le transfert sécurisé de fichiers. Il chiffre l'intégralité du trafic — mots de passe compris — ce qui le rend nettement plus sûr que des protocoles plus anciens tels que Telnet et rlogin. SSH prend en charge une grande variété d'algorithmes de chiffrement et est disponible pour pratiquement tous les systèmes d'exploitation courants.

SSH peut faire transiter d'autres protocoles réseau via un canal non sécurisé, offrant ainsi un accès à distance en ligne de commande à un ordinateur, ainsi que la transmission chiffrée de flux audio ou vidéo. Cela est rendu possible grâce au port forwarding (tunneling TCP). SSH prend également en charge la compression des données avant chiffrement, ce qui s'avère particulièrement utile lors de l'utilisation de clients X Window System à distance sur des connexions lentes.

Histoire et développement de SSH

La première version du protocole, SSH-1, a été créée en 1995 par le chercheur finlandais Tatu Ylönen à l'Université de technologie d'Helsinki. SSH-1 visait à offrir une meilleure confidentialité que rlogin, Telnet et rsh. En 1996, une version plus sécurisée et incompatible avec la précédente — SSH-2 — a été développée. Le protocole s'est rapidement répandu, atteignant environ deux millions d'utilisateurs en 2000.

En 2006, le protocole SSH a été standardisé par l'IETF en tant que standard Internet. Certains pays exigent toutefois encore aujourd'hui une autorisation spéciale pour utiliser certaines méthodes de chiffrement fort, dont certaines employées dans SSH.

Les implémentations modernes (dont OpenSSH depuis ~2017) ont entièrement abandonné la prise en charge de SSH-1. La quasi-totalité des usages actuels repose sur SSH-2.

Implémentations de SSH

Il existe deux grandes catégories d'implémentations SSH : les solutions commerciales propriétaires et les solutions libres open source. L'implémentation open source la plus répandue est OpenSSH. Au milieu des années 2000, elle était déjà présente sur environ 80 % des ordinateurs connectés à Internet ; aujourd'hui, elle reste l'implémentation SSH dominante dans le monde (incluse par défaut dans presque toutes les distributions Linux, macOS, et disponible pour Windows). L'implémentation commerciale d'origine est développée par SSH Communications Security (anciennement SSH Inc.) sous le nom de produit Tectia SSH (anciennement SSH Tectia / SSH Secure Shell). Il s'agit d'une solution payante de niveau entreprise, souvent retenue dans les secteurs réglementés (banque, administration, infrastructures critiques) pour des fonctionnalités telles que la certification FIPS 140-2/3, les options de cryptographie post-quantique, les éditions zero-trust, la gestion centralisée et le support commercial 24h/24 et 7j/7. Elle est toujours activement développée et mise à jour en 2025–2026.

Sécurité de SSH

SSH-2 résiste aux attaques de type man-in-the-middle (MITM) — contrairement à Telnet, où l'écoute du trafic expose tout. Il protège également contre le détournement de session (session hijacking) et les attaques de type DNS spoofing lorsqu'il est correctement configuré.

Recommandations actuelles (2025–2026) :

  • Utiliser des clés Ed25519 ou ECDSA plutôt que l'ancien RSA-SHA1.
  • Préférer rsa-sha2-256/512 pour les clés RSA.
  • Désactiver les algorithmes faibles ou obsolètes (par ex. SHA-1, DSA, anciennes méthodes d'échange de clés).
  • Activer l'échange de clés hybride post-quantique lorsque disponible.

Exemples d'utilisation de SSH

  • Connexion à un serveur SSH local sur un port non standard : $ ssh -p 30000 user@127.0.0.1
  • Génération d'une paire de clés RSA robuste de 4096 bits : $ puttygen -t rsa -b 4096 -o sample

Des guides plus détaillés sur la connexion via SSH :

Certains clients, comme PuTTY, proposent une interface graphique. Pour l'utilisation de SSH en Python, les bibliothèques python-paramiko et python-twisted-conch sont particulièrement populaires.

Recommandations de sécurité

  • Désactiver la connexion root à distance (PermitRootLogin no).
  • Interdire les mots de passe vides.
  • Changer le port du serveur SSH (par défaut 22) pour un port non standard.
  • Utiliser des types de clés robustes et modernes (de préférence Ed25519, ou au minimum RSA 4096 bits avec SHA-2).
  • Envisager l'authentification par certificat ou l'authentification multifacteur pour les environnements à haute exigence de sécurité.

Références

Standards

Logiciels d'accès terminal

  • OpenSSH — la principale suite SSH libre
  • PuTTY — client SSH multiplateforme populaire avec interface graphique
  • Tectia SSH — solution SSH entreprise/commerciale

Outils d'accès aux fichiers

  • WinSCP — client SFTP/SCP pour Windows
  • SSHFS — montez des répertoires distants via SSH comme des systèmes de fichiers locaux (Linux/macOS)
Besoin d’aide?Nos ingénieurs vous aideront gratuitement pour n’importe quelle question en quelques minutesNous contacter