
essh v0.3.2
Erweiterter SSH-Client mit TUI — Verbindungen, Schlüssel und Sitzungen verwalten
███████╗███████╗███████╗██╗ ██╗
██╔════╝██╔════╝██╔════╝██║ ██║
█████╗ ███████╗███████╗███████║
██╔══╝ ╚════██║╚════██║██╔══██║
███████╗███████║███████║██║ ██║
╚══════╝╚══════╝╚══════╝╚═╝ ╚═╝
Enhanced SSH for people with fleets
Ein reiner Rust-SSH-Client mit einer dichten TUI im Netwatch-Stil. Mehrere Sitzungen, Live-Host-Metriken und flottenweite Divergenz – ohne das Terminal zu verlassen.

Installation
cargo install essh
Oder hol dir eine Binärdatei für macOS oder Linux, arm64 oder x86_64, von den Releases.
Aus dem Quellcode:
git clone https://github.com/matthart1983/essh && cd essh
cargo build --release # ./target/release/essh
Starten
essh # launcher: type to search, Enter to connect
essh connect deploy@web-01 # straight to a host
essh workspace open prod # restore a saved set of sessions
essh run web -- uptime # fan a command across a tagged group
Die Hosts stammen aus ~/.ssh/config – einschließlich IdentityFile,
ProxyJump und Match – es gibt also nichts zu importieren, bevor du
loslegst.
Tasten
Alles Übliche ist nur einen Tastendruck entfernt. Die Shell behält jede
Ctrl-Kombination bei, sodass Ctrl+D weiterhin EOF bedeutet und Ctrl+C
weiterhin unterbricht.
F1 Hilfe | F2 Monitor | F3 Dateien | F4 Port-Weiterleitungen |
F5 Mini-Monitor | F6 Ablösen | F7/F8 vorherige/nächste Sitzung | F9 neue Sitzung |
F10 Befehlsmenü |
Für alles andere drückst du Ctrl+A, lässt los, dann die Taste – s Split,
w Schließen, t Theme, 1–9 zur Sitzung springen, [/] Größe ändern.
Die Leiste am unteren Rand einer Sitzung listet die Tasten auf, die gerade
gelten, sodass du nichts auswendig lernen musst. Ändere das Präfix mit
prefix_key unter [session].
Option/Alt-Kombinationen funktionieren ebenfalls, wenn dein Terminal sie
als Meta sendet, aber Funktionstasten benötigen keine Konfiguration und
verhalten sich auf beiden Plattformen gleich.
Funktionen
| Mehrere Sitzungen | Tabs und Splits in einem Fenster, mit Scrollback und Wiederverbindung pro Sitzung. |
| Live-Host-Monitor | CPU, Arbeitsspeicher, Festplatte, Netzwerk und Top-Prozesse, im Hintergrund abgetastet, sodass die Ansicht warm ist, wenn du sie öffnest. Kein Agent – schlichte SSH-Exec-Kanäle. |
| Divergenz | Vergleicht jeden Host mit seiner Peer-Gruppe und sagt dir, welcher Host abweicht, bei welcher Facette und warum. |
| Dateiübertragung | Zweispaltiger lokaler/entfernter Browser über SFTP. |
| Port-Weiterleitung | Weiterleitungen hinzufügen, anzeigen und entfernen, ohne die Sitzung zu beenden. |
| Audit und Wiedergabe | Strukturiertes JSON-Auditprotokoll; Sitzungen zeichnen als asciicast zur Wiedergabe auf. |
Divergenz
Vierzig Webserver, neununddreißig in Ordnung, und einer mit einem anderen
Kernel oder einer manuell bearbeiteten nginx.conf. Eine Spalte grüner Punkte
kann dir das strukturell nicht zeigen.
ESSH gruppiert Hosts anhand von Tags in Peer-Gruppen, sammelt von jedem dieselben Fakten und bewertet jeden Host gegen den Konsens der Gruppe:
100.0% of 16 facet-checks agree
0 facets diverge across 0 hosts.
2 hosts have never been probed, so their facets are unknown rather than in agreement.
Der Fleet-Bildschirm benennt den Ausreißer und die Facetten hinter der Aussage, sodass das Urteil überprüfbar statt bloß behauptet ist. Fakten, die er nicht sammeln kann, werden als nicht erfasst gemeldet – nie als Übereinstimmung.
Konfiguration
Der Zustand liegt in ~/.essh/: config.toml, cache.db, audit.log,
sessions/, recordings/, known_cas/.
essh config init # write a default config
essh config edit # open it in $EDITOR
essh config resolve web-01 # show how ssh_config resolves a host
Host-Schlüssel werden verifiziert und zwischengespeichert, mit einer
konfigurierbaren TOFU-Richtlinie (strict, prompt, auto). Chiffren und
KEX-Algorithmen können eingeschränkt werden.
Vollständige Referenz zu Konfiguration und Architektur: SPEC.md.
CLI
essh hosts list | add | remove | import | health
essh keys list | add | remove
essh workspace list | open | save | show | remove
essh session list | replay <id>
essh diag <session-id> # diagnostics for a past session
essh why <host> # explain why a host will not connect
essh audit tail --lines 20
essh bench # published performance numbers
Entwicklung
cargo test
cargo clippy --all-targets --all-features -- -D warnings
cargo fmt --check
CI führt alle drei bei jedem Push aus.
tests/tui_harness.rs steuert die echte Binärdatei auf einer PTY und prüft
anhand eines geparsten Terminalscreens innerhalb einer Frist, denn die Fehler,
die in einer TUI zählen, sind das Fehlen eines Frames und nicht ein falscher.
Die Tests, die SSH benötigen, überspringen sich selbst, wenn kein Host
erreichbar ist.
Mitwirken
Forke das Repository, erstelle einen Branch, nimm die Änderung vor, führe die drei obigen Prüfungen aus und eröffne einen PR.
Lizenz
MIT. Siehe LICENSE.