Volver a actualizaciones
Nuevo releaseAug 22, 2026

essh v0.3.2

Cliente SSH mejorado con TUI — gestiona conexiones, claves y sesiones

Compartir

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

crates.io CI License: MIT macOS Linux

Un cliente SSH en Rust puro con una TUI densa, estilo Netwatch. Múltiples sesiones, métricas de host en vivo y divergencia en toda la flota — sin salir de la terminal.

ESSH Demo

Instalación

cargo install essh

O descarga un binario para macOS o Linux, arm64 o x86_64, desde Releases.

Desde el código fuente:

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

Inicio

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

Los hosts provienen de ~/.ssh/config — incluidos IdentityFile, ProxyJump y Match —, así que no hay nada que importar antes de empezar.

Teclas

Todo lo habitual está a una pulsación de tecla. La shell conserva cada combinación Ctrl, así que Ctrl+D sigue significando EOF y Ctrl+C sigue interrumpiendo.

F1 ayudaF2 monitorF3 archivosF4 reenvíos de puertos
F5 mini monitorF6 desacoplarF7/F8 sesión anterior/siguienteF9 nueva sesión
F10 menú de comandos

Para cualquier otra cosa, pulsa Ctrl+A, suelta, y luego la tecla — s dividir, w cerrar, t tema, 19 saltar a la sesión, [/] redimensionar. La barra inferior de una sesión enumera las teclas que se aplican en ese momento, así que no hay nada que memorizar. Cambia el prefijo con prefix_key en [session].

Las combinaciones Option/Alt también funcionan cuando tu terminal las envía como Meta, pero las teclas de función no requieren configuración y se comportan igual en ambas plataformas.

Qué hace

Múltiples sesionesPestañas y divisiones en una sola ventana, con scrollback y reconexión por sesión.
Monitor de host en vivoCPU, memoria, disco, red y procesos principales, muestreados en segundo plano para que la vista esté lista al abrirla. Sin agente: simples canales SSH exec.
DivergenciaCompara cada host con su conjunto de pares y te indica qué host difiere, en qué faceta y por qué.
Transferencia de archivosExplorador local/remoto de dos paneles sobre SFTP.
Reenvío de puertosAñade, inspecciona y elimina reenvíos sin cerrar la sesión.
Auditoría y reproducciónRegistro de auditoría JSON estructurado; las sesiones se graban en asciicast para su reproducción.

Divergencia

Cuarenta servidores web, treinta y nueve bien, y uno con un kernel diferente o un nginx.conf editado a mano. Una columna de puntos verdes estructuralmente no puede mostrarte eso.

ESSH agrupa los hosts en conjuntos de pares por etiqueta, recopila los mismos hechos de cada uno y puntúa cada host frente al consenso del grupo:

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 pantalla Fleet identifica el valor atípico y las facetas detrás de la afirmación, de modo que el veredicto se puede comprobar en lugar de ser una simple afirmación. Los hechos que no puede recopilar se notifican como no recopilados — nunca como acuerdo.

Configuración

El estado reside en ~/.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

Las claves de host se verifican y se almacenan en caché, con una política TOFU configurable (strict, prompt, auto). Se pueden restringir los cifrados y algoritmos KEX.

Referencia completa de configuración y arquitectura: 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

Desarrollo

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

La CI ejecuta las tres comprobaciones en cada push.

tests/tui_harness.rs ejecuta el binario real en una PTY y verifica una pantalla de terminal analizada con un límite de tiempo, porque los fallos que importan en una TUI son la ausencia de un frame, no uno incorrecto. Las pruebas que necesitan SSH se omiten cuando ningún host es accesible.

Contribuciones

Haz un fork, crea una rama, haz el cambio, ejecuta las tres comprobaciones anteriores y abre un PR.

Licencia

MIT. Consulta LICENSE.

Categorías