Torna agli aggiornamenti
New releaseAug 22, 2026

essh v0.3.2

Client SSH potenziato con TUI — gestisci connessioni, chiavi e sessioni

Condividi

                         ███████╗███████╗███████╗██╗  ██╗
                         ██╔════╝██╔════╝██╔════╝██║  ██║
                         █████╗  ███████╗███████╗███████║
                         ██╔══╝  ╚════██║╚════██║██╔══██║
                         ███████╗███████║███████║██║  ██║
                         ╚══════╝╚══════╝╚══════╝╚═╝  ╚═╝
                           Enhanced SSH for people with fleets

crates.io CI License: MIT macOS Linux

Un client SSH in puro Rust con una TUI compatta in stile Netwatch. Sessioni multiple, metriche live degli host e divergenza a livello di flotta — senza uscire dal terminale.

ESSH Demo

Installazione

cargo install essh

Oppure scarica un binario per macOS o Linux, arm64 o x86_64, dalla pagina Release.

Dal sorgente:

git clone https://github.com/matthart1983/essh && cd essh
cargo build --release        # ./target/release/essh

Avvio

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

Gli host provengono da ~/.ssh/config — incluse IdentityFile, ProxyJump e Match — quindi non c'è nulla da importare prima di iniziare.

Tasti

Tutte le operazioni comuni sono a un solo tasto. La shell conserva ogni combinazione Ctrl, quindi Ctrl+D continua a significare EOF e Ctrl+C continua a interrompere.

F1 aiutoF2 monitorF3 fileF4 inoltri di porta
F5 mini monitorF6 staccaF7/F8 sessione prec./succ.F9 nuova sessione
F10 menu comandi

Per qualsiasi altra cosa, premi Ctrl+A, rilascia, poi il tasto — s dividi, w chiudi, t tema, 19 vai alla sessione, [/] ridimensiona. La barra nella parte inferiore di una sessione elenca i tasti attivi in quel momento, quindi non c'è nulla da memorizzare. Modifica il prefisso con prefix_key in [session].

Anche le combinazioni Option/Alt funzionano quando il terminale le invia come Meta, ma i tasti funzione non richiedono configurazione e si comportano allo stesso modo su entrambe le piattaforme.

Cosa fa

Sessioni multipleSchede e divisioni in un'unica finestra, con scrollback e riconnessione per ogni sessione.
Monitor host liveCPU, memoria, disco, rete e processi principali, campionati in background così la vista è già popolata quando la apri. Nessun agente — semplici canali di esecuzione SSH.
DivergenzaConfronta ogni host con il suo gruppo di pari e ti dice quale host differisce, su quale aspetto e perché.
Trasferimento fileBrowser locale/remoto a due pannelli via SFTP.
Inoltro di porteAggiungi, ispeziona e rimuovi gli inoltri senza chiudere la sessione.
Audit e replayLog di audit JSON strutturato; le sessioni vengono registrate in asciicast per il replay.

Divergenza

Quaranta server web, trentanove a posto, e uno con un kernel diverso o un nginx.conf modificato a mano. Una colonna di puntini verdi, strutturalmente, non può mostrartelo.

ESSH raggruppa gli host in gruppi di pari tramite tag, raccoglie gli stessi dati da ciascuno e valuta ogni host rispetto al consenso del gruppo:

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.

La schermata Fleet indica il valore anomalo e gli aspetti alla base della segnalazione, così il verdetto è verificabile e non solo affermato. I dati che non riesce a raccogliere vengono riportati come non raccolti — mai come concordi.

Configurazione

Lo stato si trova 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

Le chiavi host vengono verificate e messe in cache, con una policy TOFU configurabile (strict, prompt, auto). Cifrari e algoritmi KEX possono essere limitati.

Riferimento completo per configurazione e architettura: 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

Sviluppo

cargo test
cargo clippy --all-targets --all-features -- -D warnings
cargo fmt --check

La CI esegue tutti e tre a ogni push.

tests/tui_harness.rs esegue il vero binario su una PTY e verifica una schermata di terminale analizzata entro una scadenza, perché i guasti che contano in una TUI sono l'assenza di un frame, non un frame sbagliato. I test che richiedono SSH si saltano quando nessun host è raggiungibile.

Contribuire

Fai un fork, crea un branch, apporta la modifica, esegui i tre controlli qui sopra e apri una PR.

Licenza

MIT. Vedi LICENSE.

Categorie