SSHM – Un super gestionnaire pour SSH | Le site de Korben

Illustration générée par intelligence artificielle

Guillaume, fidèle lecteur de Korben.info depuis un looong moment, s’était bricolé un script bash pour gérer ses connexions SSH. Vous savez, c’est le genre de script qu’on améliore petit à petit, puis qu’on finit par ne plus oser toucher de peur de tout casser. C’est pratique, mais pour reprendre les mots de Guillaume dans le mail qu’il m’a écrit, c’est pas très “élégant”. Puis il est tombé sur deux articles que j’avais écrits : un sur ssh-list, un sur ggh, qui sont deux outils sympas pour gérer les connexions SSH depuis le terminal. Mais de son point de vue, incomplets. Et là, il a eu un déclic : “Et si je combinais les deux, en ajoutant ce qui me manque ?”

Et un mois plus tard, SSHM était né. On est loin du script du départ puisqu’il a codé un véritable outil en Go avec Bubble Tea, dans une interface TUI moderne, avec un support complet du ~/.ssh/config, une organisation par tags, un historique des connexions, et même du port forwarding avec mémoire. Bref, un truc super abouti.

“Avec un bon framework comme Bubble Tea et une idée claire sur ce qui manque aux outils existants, on fait un miracle !”

Puis environ un mois après la sortie de la première version, Guillaume a continué à implémenter pas mal de nouveautés : gestion interactive des hôtes SSH, recherche intelligente multi-mots, indicateurs de statut en temps réel, support ProxyJump, directives Include gérées correctement, personnalisation des raccourcis clavier, compatible Linux/macOS/Windows. Le tout dans un binaire unique sans dépendances. Faut vraiment que vous testiez car c’est vraiment chouette. Je trouve que SSHM a dépassé largement ses inspirations. Par exemple, ssh-list organise vos serveurs en groupes alors que SSHM utilise des tags. Ça permet de marquer un serveur “prod” + “web” + “urgent” et du coup c’est beaucoup plus flexible que de ranger ça dans des dossiers statiques.

ggh fait également du session recall. Cela veut dire qu’il se souvient de vos dernières connexions SSH et vous permet de les relancer rapidement. Et bien SSHM fait ça AUSSI, mais en plus il gère toute votre config SSH : ajout, édition, suppression d’hôtes, directement depuis l’interface TUI. En vrai, Guillaume n’a pas copié-collé les idées de ces outils mais a repensé totalement l’organisation même de la gestion SSH. Prenez le port forwarding, par exemple. Combien de fois vous avez perdu vos notes sur vos tunnels SSH ? Hé bien SSHM lui se souvient de vos dernières configs de tunnels locaux, distants, SOCKS…etc. Si vous forwardez toujours le port 3306 de votre base MySQL de dev, SSHM retiendra les paramètres. Ça fait gagner grave de temps car vous n’avez plus à vous rappeler de la syntaxe “ssh -L 3306:localhost:3306 user@serve” à chaque fois.

L’interface TUI est plutôt fluide, avec des raccourcis clavier configurables et vous pouvez même désactiver ESC si vous êtes un puriste vim qui déteste les touches d’échappement. Les indicateurs de connectivité SSH s’affichent en couleur en temps réel (vous voyez d’un coup d’œil quels serveurs répondent) et il y a une superbe recherche (un filtre en réalité) par nom et par tags, qui supporte plusieurs mots. Et si vous préférez scripter, SSHM fonctionne aussi en CLI pur. Par exemple, “sshm connect prod-web-01” dans un script bash, et ça marchera en gardant l’historique des connexions.

Un autre point technique important pour les admins qui ont des configs SSH complexes : SSHM gère correctement les directives Include. Hé oui, beaucoup d’outils cassent quand vous avez un ~/.ssh/config qui inclut des fichiers séparés comme ~/ssh/work et ~/ssh/perso. SSHM est capable non seulement de les lire mais aussi de les éditer correctement. Concernant l’installation, c’est ultra-simple. Sur macOS, Homebrew fait le job. Sur Unix/Linux, il suffit d’un script d’une ligne. Enfin, sous Windows, il y a un script PowerShell. Ou alors vous pouvez télécharger directement le binaire depuis les releases GitHub.

Homebrew pour macOS : brew install Gu1llaum-3/sshm/sshm
Unix/Linux/macOS : curl -sSL https://raw.githubusercontent.com/Gu1llaum-3/sshm/main/install/unix.sh | bash
Windows (PowerShell) : irm https://raw.githubusercontent.com/Gu1llaum-3/sshm/main/install/windows.ps1 | iex

Bref, Guillaume a plutôt bien géré son truc ! Comme quoi, la barrière entre “bidouille perso” et “outil communautaire reconnu” n’a jamais été aussi basse. Voilà, donc si vous gérez plusieurs serveurs SSH au quotidien, SSHM vaut vraiment le coup d’œil. Un grand merci à Guillaume pour le partage, c’est trop cool !

Partagez cet article
article précédent

Intel dévoile un nouveau processeur propulsé par sa technologie de semi-conducteurs 18A

article suivant

Le dilemme du réparateur : Chris Lehane et la mission impossible d’OpenAI

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Lire plus d'articles