
essh v0.3.2
Cliente SSH aprimorado com TUI — gerencie conexões, chaves e sessões
███████╗███████╗███████╗██╗ ██╗
██╔════╝██╔════╝██╔════╝██║ ██║
█████╗ ███████╗███████╗███████║
██╔══╝ ╚════██║╚════██║██╔══██║
███████╗███████║███████║██║ ██║
╚══════╝╚══════╝╚══════╝╚═╝ ╚═╝
Enhanced SSH for people with fleets
Um cliente SSH em Rust puro com uma TUI densa no estilo Netwatch. Múltiplas sessões, métricas de host em tempo real e divergência em toda a frota — sem sair do terminal.

Instalação
cargo install essh
Ou baixe um binário para macOS ou Linux, arm64 ou x86_64, em Releases.
A partir do código-fonte:
git clone https://github.com/matthart1983/essh && cd essh
cargo build --release # ./target/release/essh
Início
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
Os hosts vêm de ~/.ssh/config — incluindo IdentityFile, ProxyJump e
Match — portanto não há nada para importar antes de começar.
Teclas
Tudo o que é comum está a um toque de tecla. O shell mantém todas as
combinações Ctrl, então Ctrl+D ainda significa EOF e Ctrl+C ainda
interrompe.
F1 ajuda | F2 monitor | F3 arquivos | F4 encaminhamentos de porta |
F5 mini monitor | F6 desanexar | F7/F8 sessão anterior/próxima | F9 nova sessão |
F10 menu de comandos |
Para qualquer outra coisa, pressione Ctrl+A, solte, e então a tecla — s
dividir, w fechar, t tema, 1–9 ir para a sessão, [/]
redimensionar. A barra na parte inferior de uma sessão lista as teclas que se
aplicam no momento, então não há nada para memorizar. Altere o prefixo com
prefix_key em [session].
As combinações Option/Alt também funcionam quando o seu terminal as envia
como Meta, mas as teclas de função não precisam de configuração e se comportam
da mesma forma em ambas as plataformas.
O que ele faz
| Múltiplas sessões | Abas e divisões em uma janela, com histórico de rolagem por sessão e reconexão. |
| Monitor de host em tempo real | CPU, memória, disco, rede e principais processos, amostrados em segundo plano para que a visualização já esteja atualizada quando você a abrir. Sem agente — canais exec SSH simples. |
| Divergência | Compara cada host com seu conjunto de pares e informa qual host difere, em qual aspecto e por quê. |
| Transferência de arquivos | Navegador local/remoto de dois painéis via SFTP. |
| Encaminhamento de portas | Adicione, inspecione e remova encaminhamentos sem encerrar a sessão. |
| Auditoria e reprodução | Log de auditoria JSON estruturado; as sessões gravam em asciicast para reprodução. |
Divergência
Quarenta servidores web, trinta e nove saudáveis, e um com kernel diferente ou
um nginx.conf editado manualmente. Uma coluna de pontos verdes
estruturalmente não consegue mostrar isso.
O ESSH agrupa hosts em conjuntos de pares por tag, coleta os mesmos fatos de cada um e pontua cada host contra o consenso do 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.
A tela Fleet nomeia o ponto fora da curva e os aspectos por trás da afirmação, de modo que o veredito é verificável em vez de apenas afirmado. Fatos que ela não consegue coletar são relatados como não coletados — nunca como concordância.
Configuração
O estado fica em ~/.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
As chaves de host são verificadas e armazenadas em cache, com uma política TOFU
configurável (strict, prompt, auto). Algoritmos de cifra e KEX podem ser
restringidos.
Referência completa de configuração e arquitetura: 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
Desenvolvimento
cargo test
cargo clippy --all-targets --all-features -- -D warnings
cargo fmt --check
O CI executa os três em cada push.
tests/tui_harness.rs executa o binário real em um PTY e faz asserções em uma
tela de terminal analisada com um prazo, porque as falhas que importam em uma
TUI são a ausência de um quadro, e não um quadro errado. Os testes que precisam
de SSH são pulados automaticamente quando nenhum host está acessível.
Contribuição
Faça um fork, crie uma branch, faça a alteração, execute as três verificações acima e abra um PR.
Licença
MIT. Veja LICENSE.