Introduction au protocole SSH-2 et son architecture
Commençons par examiner comment SSH-2 est structuré.
Le protocole SSH-2 repose sur une architecture en trois couches distinctes, chacune jouant
un rôle clé pour assurer une connexion sécurisée.
Tout d’abord, la couche de transport établit la connexion initiale entre le client et le serveur.
Elle gère l’échange des clés cryptographiques, garantit le chiffrement des données et veille à
leur intégrité. Elle peut également compresser les données pour optimiser les
performances.
Ensuite, la couche d’authentification prend le relais pour vérifier l’identité de l’utilisateur.
Elle supporte plusieurs méthodes, comme les clés publiques ou les mots de passe, et
s’appuie sur la couche de transport pour sécuriser ces échanges.
Enfin, la couche de connexion permet de gérer plusieurs canaux au sein d’une même
session. Elle rend possible l’exécution de commandes à distance, le transfert de ports pour
créer des tunnels sécurisés, et supporte à la fois les sessions interactives, comme un
terminal, et non-interactives, comme des scripts automatisés.
Cette organisation modulaire rend SSH-2 robuste et flexible, et nous allons maintenant voir
comment une connexion SSH s’établit concrètement.
Établissement d’une connexion SSH
Passons au processus étape par étape d’une connexion SSH. C’est une séquence bien définie
qui garantit à la fois la sécurité et la compatibilité entre le client et le serveur.
Tout commence par l’établissement d’une connexion TCP : le client contacte le serveur SSH,
généralement sur le port 22. Ensuite, les deux parties échangent leurs versions du protocole
pour confirmer qu’elles peuvent communiquer.
Une fois cette étape passée, ils négocient les algorithmes à utiliser : chiffrement,
authentification, échange de clés… tout est défini ici pour garantir une sécurité optimale.
Le client génère alors une paire de clés publique/privée et envoie la clé publique au serveur.
Ce dernier vérifie si cette clé est autorisée, généralement en consultant un fichier comme
authorized_keys. Pour s’assurer que le client est légitime, le serveur chiffre un message
aléatoire avec la clé publique et le renvoie.
Le client, grâce à sa clé privée, déchiffre ce message et renvoie la preuve au serveur. Si tout
correspond, le serveur valide l’authentification, et un canal sécurisé est établi.
À partir de là, le client peut envoyer des commandes chiffrées via ce tunnel. Le serveur les
déchiffre, exécute les instructions, et renvoie les résultats chiffrés, que le client déchiffre à
son tour pour les lire.
Ce processus, bien que complexe, se déroule en quelques millisecondes, offrant une
connexion fluide et sécurisée. Voyons maintenant comment SSH est utilisé dans des
scénarios concrets.
Cas d’usage courants de SSH
SSH est omniprésent dans le monde de l’informatique, particulièrement pour les
administrateurs systèmes, les développeurs et les équipes DevOps. Voici trois cas d’usage
majeurs.
Premier cas : la connexion à un serveur distant. SSH permet d’accéder à un serveur, qu’il
soit dans un data center ou sur un autre réseau, comme si vous étiez physiquement devant.
Une fois connecté, vous pouvez gérer des fichiers, installer des logiciels, surveiller les
performances ou redémarrer des services comme un serveur web ou une base de données.
C’est un outil essentiel pour la gestion à distance.
Deuxième cas : le transfert de fichiers sécurisé. Contrairement à des protocoles non
sécurisés comme FTP, SSH propose SCP et SFTP pour envoyer ou récupérer des fichiers
avec un chiffrement complet. SCP est parfait pour des transferts rapides, tandis que SFTP
offre une interface interactive, similaire à FTP, mais sécurisée. Pas besoin de serveurs
supplémentaires, tout passe par SSH.
Troisième cas : le tunneling SSH, ou redirection de ports. Cela permet d’accéder à des
services distants qui ne sont pas directement exposés sur Internet, comme une base de
données ou un intranet. Par exemple, si une base de données MySQL n’est accessible qu’en
local sur un serveur distant, vous pouvez utiliser SSH pour rediriger son port vers votre
machine. Cela crée un canal sécurisé pour travailler comme si tout était local.
Ces cas d’usage montrent à quel point SSH est un outil puissant et flexible. Pour conclure
cette partie, parlons des avantages qui font de SSH un standard incontournable.