Voltar às atualizações
New releaseAug 22, 2026

essh v0.3.2

Cliente SSH aprimorado com TUI — gerencie conexões, chaves e sessões

Compartilhar

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

crates.io CI License: MIT macOS Linux

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.

ESSH Demo

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 ajudaF2 monitorF3 arquivosF4 encaminhamentos de porta
F5 mini monitorF6 desanexarF7/F8 sessão anterior/próximaF9 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, 19 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õesAbas e divisões em uma janela, com histórico de rolagem por sessão e reconexão.
Monitor de host em tempo realCPU, 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ênciaCompara cada host com seu conjunto de pares e informa qual host difere, em qual aspecto e por quê.
Transferência de arquivosNavegador local/remoto de dois painéis via SFTP.
Encaminhamento de portasAdicione, inspecione e remova encaminhamentos sem encerrar a sessão.
Auditoria e reproduçãoLog 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.

Categorias