﻿﻿{"id":1333,"date":"2025-10-08T16:06:12","date_gmt":"2025-10-08T14:06:12","guid":{"rendered":"https:\/\/elearningsamba.com\/index.php\/sshm-un-super-gestionnaire-pour-ssh\/"},"modified":"2025-10-08T16:06:12","modified_gmt":"2025-10-08T14:06:12","slug":"sshm-un-super-gestionnaire-pour-ssh","status":"publish","type":"page","link":"https:\/\/elearningsamba.com\/index.php\/sshm-un-super-gestionnaire-pour-ssh\/","title":{"rendered":"SSHM &#8211; Un super gestionnaire pour SSH"},"content":{"rendered":"<p>Guillaume, fid\u00e8le lecteur de Korben.info depuis un looong moment, s\u2019\u00e9tait bricol\u00e9 un script bash pour g\u00e9rer ses connexions SSH. Vous savez, c\u2019est le genre de script qu\u2019on am\u00e9liore petit \u00e0 petit, puis qu\u2019on finit par ne plus oser toucher de peur de tout casser. C\u2019est pratique, mais pour reprendre les mots de Guillaume dans le mail qu\u2019il m\u2019a \u00e9crit, c\u2019est pas tr\u00e8s \u201c\u00e9l\u00e9gant\u201d.<\/p>\n<p>Puis il est tomb\u00e9 sur deux articles que j\u2019avais \u00e9crits : un sur<br \/>\n<a href=\"https:\/\/korben.info\/ssh-list-gestionnaire-connexions-ssh-rust-terminal.html\">ssh-list<\/a><br \/>\n, un sur<br \/>\n<a href=\"https:\/\/korben.info\/ggh-outil-rendu-mes-connexions-ssh.html\">ggh<\/a><br \/>\nqui sont deux outils sympas pour g\u00e9rer les connexions SSH depuis le terminal. Mais de son point de vue, incomplets. Et l\u00e0, il a eu un d\u00e9clic : \u201c<em>Et si je combinais les deux, en ajoutant ce qui me manque ?<\/em>\u201d<\/p>\n<p>Et un mois plus tard,<br \/>\n<a href=\"https:\/\/github.com\/Gu1llaum-3\/sshm\">SSHM \u00e9tait n\u00e9<\/a><br \/>\n. On est loin du script du d\u00e9part puisqu\u2019il a cod\u00e9 un v\u00e9ritable outil en<br \/>\n<a href=\"https:\/\/go.dev\/\">Go<\/a><br \/>\navec<br \/>\n<a href=\"https:\/\/github.com\/charmbracelet\/bubbletea\">Bubble Tea<\/a><br \/>\n, dans une interface TUI moderne, avec un support complet du ~\/.ssh\/config, une organisation par tags, un historique des connexions, et m\u00eame du port forwarding avec m\u00e9moire. Bref un truc super abouti.<\/p>\n<p>Puis environ environ 1 mois apr\u00e8s la sortie de la premi\u00e8re version, Guillaume a continu\u00e9 \u00e0 impl\u00e9menter pas mal de nouveaut\u00e9s : gestion interactive des h\u00f4tes SSH, recherche intelligente multi-mots, indicateurs de statut en temps r\u00e9el, support ProxyJump, directives Include g\u00e9r\u00e9es correctement, personnalisation des raccourcis clavier, compatible Linux\/macOS\/Windows. Le tout dans un binaire unique sans d\u00e9pendances.<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/korben.info\/cdn-cgi\/image\/width=1200,fit=scale-down,quality=90,f=avif\/sshm-gestionnaire-ssh\/sshm-gestionnaire-ssh-1.gif\" alt=\"\" loading=\"lazy\"><\/p>\n<p>Faut vraiment que vous testiez car c\u2019est c\u2019est chouette. Je trouve que SSHM a d\u00e9pass\u00e9 largement ses inspirations. Par exemple,<br \/>\n<a href=\"https:\/\/github.com\/akinoiro\/ssh-list\">ssh-list<\/a><br \/>\norganise vos serveurs en groupes alors que SSHM utilise des tags. \u00c7a permet de marquer un serveur \u201cprod\u201d + \u201cweb\u201d + \u201curgent\u201d et du coup c\u2019est beaucoup plus flexible que de ranger \u00e7a dans des dossiers statiques.<\/p>\n<p>\n<a href=\"https:\/\/github.com\/byawitz\/ggh\">ggh<\/a><br \/>\nfait \u00e9galement du session recall. Cela veut dire qu\u2019il se souvient de vos derni\u00e8res connexions SSH et vous permet de les relancer rapidement. Et bien SSHM fait \u00e7a AUSSI, mais en plus il g\u00e8re toute votre config SSH : Ajout, \u00e9dition, suppression d\u2019h\u00f4tes, directement depuis l\u2019interface TUI. En vrai, Guillaume n\u2019a pas copi\u00e9-coll\u00e9 les id\u00e9es de ces outils mais a repens\u00e9 totalement l\u2019organisation m\u00eame de la gestion SSH.<\/p>\n<p>Prenez le port forwarding. Combien de fois vous avez perdu vos notes sur vos tunnels SSH ? H\u00e9 bien SSHM lui se souvient de vos derni\u00e8res configs de tunnels locaux, distants, SOCKS\u2026etc. Si vous forwardez toujours le port 3306 de votre base MySQL de dev, SSHM retiendra les param\u00e8tres. \u00c7a fait gagner grave de temps car vous n\u2019avez plus \u00e0 vous rappeler de la syntaxe \u201c<em>ssh -L 3306:localhost:3306 user@serve<\/em>\u201d \u00e0 chaque fois. C\u2019est un petit d\u00e9tail qui prouve bien que cet outil a \u00e9t\u00e9 cr\u00e9\u00e9 par quelqu\u2019un qui UTILISE vraiment SSH au quotidien, et pas juste pour faire un script vite fait.<\/p>\n<p>L\u2019interface TUI est plut\u00f4t fluide, avec des raccourcis clavier configurables et vous pouvez m\u00eame d\u00e9sactiver ESC si vous \u00eates un puriste vim qui d\u00e9teste les touches d\u2019\u00e9chappement. Les indicateurs de connectivit\u00e9 SSH s\u2019affichent en couleur en temps r\u00e9el (vous voyez d\u2019un coup d\u2019\u0153il quels serveurs r\u00e9pondent) et il y a une superbe recherche (un filtre en r\u00e9alit\u00e9) par nom et par tags, qui supporte plusieurs mots. Et si vous pr\u00e9f\u00e9rez scripter, SSHM fonctionne aussi en CLI pur. Par exemple, \u201c<em>sshm connect prod-web-01<\/em>\u201d dans un script bash, et \u00e7a marchera en gardant l\u2019historique des connexions.<\/p>\n<p>Un autre point technique important pour les admins qui ont des configs SSH complexes : SSHM g\u00e8re correctement les<br \/>\n<a href=\"https:\/\/man.openbsd.org\/ssh_config#Include\">directives Include<\/a><br \/>\n. H\u00e9 oui, beaucoup d\u2019outils cassent quand vous avez un ~\/.ssh\/config qui include des fichiers s\u00e9par\u00e9s comme ~\/ssh\/work et ~\/ssh\/perso. SSHM est capable non seulement de les lire mais aussi de les \u00e9diter correctement.<\/p>\n<p>Concernant l\u2019installation c\u2019est ultra-simple. Sur macOS, Homebrew fait le job. Sur Unix\/Linux, il suffit d\u2019un script d\u2019une ligne. Enfin, sous Windows, y\u2019a un script PowerShell. Ou alors vous pouvez t\u00e9l\u00e9charger direct le binaire depuis les<br \/>\n<a href=\"https:\/\/github.com\/Gu1llaum-3\/sshm\/releases\">releases GitHub<\/a><br \/>\n.<\/p>\n<p><strong>Homebrew pour macOS :<\/strong><\/p>\n<pre>brew install Gu1llaum-3\/sshm\/sshm<\/pre>\n<p><strong>Unix\/Linux\/macOS :<\/strong><\/p>\n<pre>curl -sSL https:\/\/raw.githubusercontent.com\/Gu1llaum-3\/sshm\/main\/install\/unix.sh | bash<\/pre>\n<p><strong>Windows (PowerShell):<\/strong><\/p>\n<pre>irm https:\/\/raw.githubusercontent.com\/Gu1llaum-3\/sshm\/main\/install\/windows.ps1 | iex<\/pre>\n<p>Bref, Guillaume a plut\u00f4t bien g\u00e9r\u00e9 son truc je trouve ! Comme quoi, la barri\u00e8re entre \u201cbidouille perso\u201d et \u201coutil communautaire reconnu\u201d n\u2019a jamais \u00e9t\u00e9 aussi basse. Avec un bon framework comme Bubble Tea, une id\u00e9e claire sur ce qui manque aux outils existants, et un ou deux mois de travail s\u00e9rieux, et hop, on fait un miracle !<\/p>\n<p>Voil\u00e0, donc si vous g\u00e9rez plusieurs serveurs SSH au quotidien,<br \/>\n<a href=\"https:\/\/github.com\/Gu1llaum-3\/sshm\">SSHM<\/a><br \/>\nvaut vraiment le coup d\u2019\u0153il. Un grand merci \u00e0 Guillaume pour le partage, c\u2019est trop cool !<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Guillaume, fid\u00e8le lecteur de Korben.info depuis un looong moment, s\u2019\u00e9tait bricol\u00e9 un script bash pour g\u00e9rer ses connexions SSH. Vous savez, c\u2019est le genre de script qu\u2019on am\u00e9liore petit \u00e0 petit, puis qu\u2019on finit par ne plus oser toucher de peur de tout casser. C\u2019est pratique, mais pour reprendre les mots de Guillaume dans le mail qu\u2019il m\u2019a \u00e9crit, c\u2019est pas tr\u00e8s \u201c\u00e9l\u00e9gant\u201d. Puis il est tomb\u00e9 sur deux articles que j\u2019avais \u00e9crits : un sur ssh-list , un sur ggh qui sont deux outils sympas pour g\u00e9rer les connexions SSH depuis le terminal. Mais de son point de vue, incomplets. Et l\u00e0, il a eu un d\u00e9clic : \u201cEt si je combinais les deux, en ajoutant ce qui me manque ?\u201d Et un mois plus tard, SSHM \u00e9tait n\u00e9 . On est loin du script du d\u00e9part puisqu\u2019il a cod\u00e9 un v\u00e9ritable 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\u00eame du port forwarding avec m\u00e9moire. Bref un truc super abouti. Puis environ environ 1 mois apr\u00e8s la sortie de la premi\u00e8re version, Guillaume a continu\u00e9 \u00e0 impl\u00e9menter pas mal de nouveaut\u00e9s : gestion interactive des h\u00f4tes SSH, recherche intelligente multi-mots, indicateurs de statut en temps r\u00e9el, support ProxyJump, directives Include g\u00e9r\u00e9es correctement, personnalisation des raccourcis clavier, compatible Linux\/macOS\/Windows. Le tout dans un binaire unique sans d\u00e9pendances. Faut vraiment que vous testiez car c\u2019est c\u2019est chouette. Je trouve que SSHM a d\u00e9pass\u00e9 largement ses inspirations. Par exemple, ssh-list organise vos serveurs en groupes alors que SSHM utilise des tags. \u00c7a permet de marquer un serveur \u201cprod\u201d + \u201cweb\u201d + \u201curgent\u201d et du coup c\u2019est beaucoup plus flexible que de ranger \u00e7a dans des dossiers statiques. ggh fait \u00e9galement du session recall. Cela veut dire qu\u2019il se souvient de vos derni\u00e8res connexions SSH et vous permet de les relancer rapidement. Et bien SSHM fait \u00e7a AUSSI, mais en plus il g\u00e8re toute votre config SSH : Ajout, \u00e9dition, suppression d\u2019h\u00f4tes, directement depuis l\u2019interface TUI. En vrai, Guillaume n\u2019a pas copi\u00e9-coll\u00e9 les id\u00e9es de ces outils mais a repens\u00e9 totalement l\u2019organisation m\u00eame de la gestion SSH. Prenez le port forwarding. Combien de fois vous avez perdu vos notes sur vos tunnels SSH ? H\u00e9 bien SSHM lui se souvient de vos derni\u00e8res configs de tunnels locaux, distants, SOCKS\u2026etc. Si vous forwardez toujours le port 3306 de votre base MySQL de dev, SSHM retiendra les param\u00e8tres. \u00c7a fait gagner grave de temps car vous n\u2019avez plus \u00e0 vous rappeler de la syntaxe \u201cssh -L 3306:localhost:3306 user@serve\u201d \u00e0 chaque fois. C\u2019est un petit d\u00e9tail qui prouve bien que cet outil a \u00e9t\u00e9 cr\u00e9\u00e9 par quelqu\u2019un qui UTILISE vraiment SSH au quotidien, et pas juste pour faire un script vite fait. L\u2019interface TUI est plut\u00f4t fluide, avec des raccourcis clavier configurables et vous pouvez m\u00eame d\u00e9sactiver ESC si vous \u00eates un puriste vim qui d\u00e9teste les touches d\u2019\u00e9chappement. Les indicateurs de connectivit\u00e9 SSH s\u2019affichent en couleur en temps r\u00e9el (vous voyez d\u2019un coup d\u2019\u0153il quels serveurs r\u00e9pondent) et il y a une superbe recherche (un filtre en r\u00e9alit\u00e9) par nom et par tags, qui supporte plusieurs mots. Et si vous pr\u00e9f\u00e9rez scripter, SSHM fonctionne aussi en CLI pur. Par exemple, \u201csshm connect prod-web-01\u201d dans un script bash, et \u00e7a marchera en gardant l\u2019historique des connexions. Un autre point technique important pour les admins qui ont des configs SSH complexes : SSHM g\u00e8re correctement les directives Include . H\u00e9 oui, beaucoup d\u2019outils cassent quand vous avez un ~\/.ssh\/config qui include des fichiers s\u00e9par\u00e9s comme ~\/ssh\/work et ~\/ssh\/perso. SSHM est capable non seulement de les lire mais aussi de les \u00e9diter correctement. Concernant l\u2019installation c\u2019est ultra-simple. Sur macOS, Homebrew fait le job. Sur Unix\/Linux, il suffit d\u2019un script d\u2019une ligne. Enfin, sous Windows, y\u2019a un script PowerShell. Ou alors vous pouvez t\u00e9l\u00e9charger direct 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\u00f4t bien g\u00e9r\u00e9 son truc je trouve ! Comme quoi, la barri\u00e8re entre \u201cbidouille perso\u201d et \u201coutil communautaire reconnu\u201d n\u2019a jamais \u00e9t\u00e9 aussi basse. Avec un bon framework comme Bubble Tea, une id\u00e9e claire sur ce qui manque aux outils existants, et un ou deux mois de travail s\u00e9rieux, et hop, on fait un miracle ! Voil\u00e0, donc si vous g\u00e9rez plusieurs serveurs SSH au quotidien, SSHM vaut vraiment le coup d\u2019\u0153il. Un grand merci \u00e0 Guillaume pour le partage, c\u2019est trop cool !<\/p>\n","protected":false},"author":1,"featured_media":1334,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"give_campaign_id":0,"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"_kadence_starter_templates_imported_post":false,"footnotes":""},"class_list":["post-1333","page","type-page","status-publish","has-post-thumbnail","hentry"],"campaignId":"","_links":{"self":[{"href":"https:\/\/elearningsamba.com\/index.php\/wp-json\/wp\/v2\/pages\/1333","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/elearningsamba.com\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/elearningsamba.com\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/elearningsamba.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/elearningsamba.com\/index.php\/wp-json\/wp\/v2\/comments?post=1333"}],"version-history":[{"count":0,"href":"https:\/\/elearningsamba.com\/index.php\/wp-json\/wp\/v2\/pages\/1333\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/elearningsamba.com\/index.php\/wp-json\/wp\/v2\/media\/1334"}],"wp:attachment":[{"href":"https:\/\/elearningsamba.com\/index.php\/wp-json\/wp\/v2\/media?parent=1333"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}