2tap2b

SSHM - SSH Managment TUI

Inhaltsverzeichnis

Das Problem mit vielen Servern

Bei mir stehen zu Hause zwei Server und zwei Backup-Server. Offsite kommen noch zwei weitere dazu, um die ich mich kümmere. Und dann sind da noch zwei VPS bei einem Hoster, die ich gemietet habe. Dann habe ich noch jede Menge Dev VMs und LXCs in Proxmox, das wird schnell unübersichtlich.

Lange Zeit war mein Ansatz: einfach alles ordentlich in ~/.ssh/config eintragen und dann ssh servername tippen. Das funktioniert, aber so richtig schön ist es nicht. Du musst dir alle Hostnamen merken, du hast keinen Überblick, welche Server gerade erreichbar sind, und wenn du mal schnell auf einen bestimmten Server willst, tippst du erst halb den Namen und hoffst, dass die Tab-Completion einspringt.

Ich bin grundsätzlich ein Fan von Terminal User Interfaces. Ich verstehe ehrlich gesagt nicht ganz, woher dieser Anti-Terminal-Hype kommt, dass alles unbedingt klicki-bunti sein muss. Das Terminal ist aufgeräumt, schnell und übersichtlich, wenn man es richtig nutzt. Und genau das macht ein gutes TUI-Tool aus.


SSHM entdeckt

Auf GitHub bin ich auf SSHM gestoßen. Das Tool ist in Go geschrieben, bringt ein sauberes TUI mit und das Beste daran: es liest direkt aus deiner bestehenden ~/.ssh/config. Du musst nichts neu einrichten oder migrieren. Einfach sshm tippen, und alle deine konfigurierten Hosts tauchen in einer übersichtlichen Liste auf.

So siehst du auf einen Blick, welche Server online sind, welche nicht erreichbar sind, und kannst mit einem Tastendruck direkt verbinden. Das ist genau das, was ich gesucht habe.

sshm terminal view

Mit nur einem Klick kannst du alle Server anpingen und siehst wer Online ist.

sshm terminal ping view


Installation

Die Installation geht wirklich schnell. Für Linux reicht ein einziger Befehl:

curl -sSL https://raw.githubusercontent.com/Gu1llaum-3/sshm/main/install/unix.sh | bash

Wer lieber manuell installiert, kann sich das Binary direkt von den Releases herunterladen:

wget https://github.com/Gu1llaum-3/sshm/releases/latest/download/sshm-linux-amd64.tar.gz
tar -xzf sshm-linux-amd64.tar.gz
sudo mv sshm-linux-amd64 /usr/local/bin/sshm

Für macOS gibt es auch Homebrew:

brew install Gu1llaum-3/sshm/sshm

Wie es funktioniert

Nach der Installation einfach sshm ohne Argumente aufrufen:

sshm

Das öffnet das TUI und listet alle Hosts aus deiner SSH Config auf. Navigiert wird mit den Pfeiltasten oder vim-style mit j und k. Mit Enter verbindest du dich direkt. Die Statusanzeige zeigt live, welche Server gerade erreichbar sind und welche nicht.

Die wichtigsten Tasten im Überblick:

  • Enter - Verbindung zum ausgewählten Host aufbauen
  • a - Neuen Host hinzufügen
  • e - Bestehenden Host bearbeiten
  • d - Host löschen
  • / - Suche und Filterung
  • s - Sortierung wechseln (Name oder letzter Login)
  • f - Port Forwarding einrichten
  • q - Beenden

Hosts lassen sich auch ohne TUI direkt ansprechen:

sshm mein-server

Das funktioniert genauso wie ssh mein-server, loggt den Zeitstempel aber mit, sodass du im TUI siehst, wann du zuletzt auf welchem Server warst.


Hosts direkt hinzufügen

Neue Hosts kannst du über das TUI hinzufügen, oder direkt über die Kommandozeile:

sshm add

Das öffnet ein interaktives Formular, das dich durch alle relevanten Felder führt: Hostname, User, Port, Identity File, ProxyJump und optional weitere SSH-Optionen. Am Ende landet alles sauber in deiner ~/.ssh/config und bleibt damit kompatibel mit allen anderen SSH-Tools.


Quellen:

https://github.com/Gu1llaum-3/sshm