Je croyais dompter SSH comme un vieux loup. Les connexions à distance, la clé publique planquée dans le ~/.ssh, les tunnels discrets pour regarder mes flux Netflix US comme si j’habitais à Kansas City : tout ça me semblait solide, maîtrisé, presque routinier. Puis, un soir d’insomnie, j’ai croisé LA commande. Un truc tout bête, planqué dans la doc officielle, mais qui m’a collé un vertige réseau pas piqué des hannetons. Entre fascination technique et petite claque existentielle, impossible de faire machine arrière : SSH venait de redevenir magique.
À retenir
- La découverte d’une commande SSH méconnue qui transforme la gestion des connexions.
- Comment le ProxyJump (-J) simplifie le chaînage des bastions sans perte de session.
- Un nouvel regard sur SSH, plus qu’un outil, une aventure réseau renouvelée.
L’aurore boréale du ssh -J : jouer à James Bond sans smoking
Si vous squattez le terminal plus souvent qu’il ne serait raisonnable, vous connaissez déjà les ssh user@machine, voire l’option -i pour spécifier la clé privée. Les tunnels (-L, -R) n’ont (presque) plus de secrets. Mais qui se souvient, sans aller sur Stack Overflow, qu’au détour de la version 7.3, SSH a introduit l’option -J (ProxyJump) ? : la possibilité de chaîner des connexions façon domino numérique, sans se perdre dans les arcanes du ProxyCommand ? Pas moi. Jusqu’alors, pour accéder à un serveur planqué derrière un bastion, je jonglais avec des commandes imbriquées comme un acrobate sur-caféiné. ssh -t jumphost ssh target, puis on s’emmêle les ports, les terminaisons de session, et cette bonne vieille panique quand la moitié de l’input part dans l’éther.
La commande qui a tout changé :
ssh -J user@bastion user@serveur-final
Franchement, c’est à la fois trivial et élégant. Plus besoin de script exotique ou de session en série. On saute de bastion en bastion avec un seul appel, et la magie opère. SSH gère le relais comme un chef, et on retrouve son shell, intact, à l’autre bout du labyrinthe. Rien qu’en tapant cette commande, j’ai eu l’impression, justifiée, de déverrouiller un nouveau niveau dans ce vieux jeu qu’est l’administration réseau.
Le chaînage, version propre : la fin des tunnels qui fuient
Avant de tomber sur -J, combien de fois suis-je tombé dans le piège des tunnels à rallonge ? On pose un ssh -L pour rediriger un port local sur le bastion, puis un autre tunnel sur la cible, et soudain, notre espace-temps bourdonne d’autant de ports locaux que de cafés ingurgités. Bon, c’est fun la première fois. Mais au bout de quatre services, on ne sait plus qui écoute où, ni quel kill balancer dans la console (petite pensée pour les 18 sessions orphelines sur mon laptop du boulot).
Avec -J, SSH gère le passage de témoin entre machines. De plus, l’authentification sur chaque nœud, tout cela en gardant une syntaxe compacte. Et c’est là où mon regard sur le réseau s’est fait chambranlant. En quelques caractères, on convoque tout ce que la couche 7 rédoute le plus : la simplicité efficace, sans donner du fil à retordre au pare-feu, ni à l’audit sécurité. Bon, il manque peut-être le goût du risque que pouvait offrir un mot de passe oublié, mais qui s’en plaindra franchement ?
Un petit détour par les configs : SSH, ce caméléon
Là où SSH brille, c’est dans sa capacité à s’adapter à des flux de travail variés. Imaginez : configurer un ProxyJump dans le fichier ~/.ssh/config. À l’intérieur, quelques lignes changent tout :
Host cible
HostName serveur-final
User bob
ProxyJump bastion
Résultat : la commande ssh cible sait, toute seule, faire le bond de bastion en destination choisie. Plus besoin de vous remémorer qui est derrière le rideau, ni de documenter chaque arcane pour vos collègues – la configuration devient auto-explicative. C’est le genre de petit plaisir qui redonne goût à la bonne vieille maintenance d’infra, même un lendemain de patch système farceur.
Pourquoi personne n’en parle dans les écoles du clavier ? Mystère. Peut-être parce que, dans cette galaxie d’outils open-source, on valorise plus souvent la dernière techno à la mode que le génie caché sous le capot d’un outil de 29 ans d’âge. Pourtant, ce genre de découverte change la relation qu’on entretient avec ses serveurs : on passe du statut d’ouvrier spécialisé à celui d’architecte méticuleux (ou d’alchimiste, selon l’état du réseau ce jour-là).
Le vrai super-pouvoir : voir le réseau comme une histoire à rebondissements
Il y a une beauté à voir SSH comme un fil narratif, capable de tisser des liens entre des machines jamais conçues pour se croiser. Avec -J, chaque session devient un récit – on traverse des zones (parfois hostiles, parfois dociles), on saute de checkpoint en checkpoint, jusqu’à ce que la récompense (un shell prompt, une manip de prod, les logs du vendredi soir) arrive à portée de main.
Je me souviens de cette nuit où, devant une pile d’alertes, j’ai traversé quatre niveaux de bastions façon jeu vidéo. Les collègues sur Slack me voyaient passer de “le VPN est down” à “trouvé le bug en prod” comme on traverse les couloirs de Doom : en mode speedrun, grâce à une seule commande. À ce moment-là, j’ai compris : SSH ne s’arrête pas à l’identité d’un outil vieux jeu ou d’un rideau de fer pour les admins. Il se réinvente, dès qu’on lui offre un nouveau terrain de jeu.
Alors la prochaine fois que tu croiseras le chemin d’un vieux serveur oublié, ou que tu penseras avoir fait le tour des subtilités de ton terminal, pose-toi la question : quelles commandes dorment encore dans man ssh ? Le réseau, c’est une aventure façon Choose Your Own Adventure. Et la vraie magie SSH, c’est d’inviter chacun à écrire sa propre quête, une ligne de commande à la fois.