
Cliente SSH aprimorado com TUI — gerencie conexões, chaves e sessões
███████╗███████╗███████╗██╗ ██╗
██╔════╝██╔════╝██╔════╝██║ ██║
█████╗ ███████╗███████╗███████║
██╔══╝ ╚════██║╚════██║██╔══██║
███████╗███████║███████║██║ ██║
╚══════╝╚══════╝╚══════╝╚═╝ ╚═╝
Enhanced SSH for people with fleets
Um terminal. Múltiplas sessões SSH. Visibilidade ao vivo do host. Zero mudança de contexto.
ESSH é um cliente SSH puro em Rust com uma TUI nítida, inspirada no Netwatch, para operadores que querem mais do que um shell simples.
Conecte-se rapidamente, monitore a saúde do host em tempo real, transfira arquivos, gerencie encaminhamentos e mantenha um rastro de auditoria limpo sem sair do terminal.
A maioria das ferramentas SSH para em "você está conectado." ESSH foi construído para o que acontece depois disso.

Dashboard, terminal multi-sessão, monitor de host, painel dividido, paleta de comandos, navegador de arquivos e encaminhamento de porta em um único fluxo.
ESSH atualmente suporta apenas builds para macOS e Linux.
cargo install essh
git clone https://github.com/matthart1983/essh.git
cd essh
cargo build --release
./target/release/essh
Windows não é um alvo de build local suportado no momento.
# Launch the dashboard
essh
# Direct connect
essh connect user@host
# Use a specific key
essh connect user@host -i ~/.ssh/id_ed25519
# Use an encrypted key (ESSH will prompt for the passphrase)
essh connect user@host -i ~/.ssh/id_ed25519_encrypted
# Pull hosts from your existing SSH config
essh hosts import
# Run a command across a tagged group
essh run web-servers -- uptime
Na primeira execução, o ESSH cria ~/.essh/ e fornece um config funcional, cache de hosts SQLite, diretório de diagnósticos e caminho de log de auditoria.
┌─ ESSH ── [1] web-prod [2] db-primary [3] staging ───────────────┐
│ deploy@web-prod:~$ │
│ │
│ journalctl -u api -f │
│ │
├───────────────────────────────────────────────────────────────────┤
│ RTT 12.3ms ↑1.2KB/s ↓48.5KB/s Loss 0.0% ● Excellent │
├───────────────────────────────────────────────────────────────────┤
│ CPU 23% ▁▂▃▄▅▆▅▃▂▁ MEM 40% ████████████████░░░░░░░░░ │
│ LOAD 0.82 0.64 0.55 NET RX 48.5KB/s TX 1.2KB/s │
│ DISK / 62% Top: node, nginx, postgres │
└───────────────────────────────────────────────────────────────────┘
A ideia é simples: fidelidade de terminal quando você precisa de um shell, sinal operacional quando você precisa de contexto.
Alt+1-9, Alt+←/→, e Alt+Tab.Alt+s.~/.ssh/config.strict, prompt e auto.essh hosts import
ESSH suporta chaves privadas protegidas por frase secreta tanto para conexões CLI diretas quanto para a TUI.
# One-off CLI connection with an encrypted key
essh connect user@host -i ~/.ssh/id_ed25519_encrypted
# Add an encrypted key to the local key cache
essh keys add ~/.ssh/id_ed25519_encrypted --name laptop-key
O que esperar:
ssh-agent ainda funciona.[[hosts]]
name = "web-prod-1"
hostname = "10.0.1.10"
user = "deploy"
key = "~/.ssh/id_ed25519"
[hosts.tags]
env = "production"
role = "web"
[[host_groups]]
name = "web-servers"
[host_groups.match_tags]
role = "web"
essh run web-servers -- sudo systemctl status nginx
essh session list
essh session replay <session-id>
ESSH vem com o mesmo conjunto de temas integrados que o NetWatch: dark, light, solarized, dracula e nord.
Use t em visualizações estilo dashboard ou Alt+t de qualquer sessão para alternar temas instantaneamente. O tema selecionado é salvo em ~/.essh/config.toml como:
theme = "dark"
essh # launch dashboard
essh connect user@host # direct SSH session
essh hosts list # list cached hosts
essh hosts import # import from ~/.ssh/config
essh keys list # list cached keys
essh diag <session-id> # inspect diagnostics
essh session list # list recordings
essh session replay <session-id> # replay a recording
essh audit tail --lines 20 # inspect recent audit events
essh config show # print active config
ESSH armazena seu estado em ~/.essh/.
~/.essh/
├── config.toml # main configuration
├── cache.db # host and key cache
├── audit.log # structured audit trail
├── sessions/ # per-session diagnostics logs
├── recordings/ # asciicast recordings
└── known_cas/ # trusted certificate authorities
Comandos úteis:
essh config init
essh config edit
essh config show
Se você quiser a especificação completa de configuração e arquitetura, veja SPEC.md.
strict, prompt ou auto.ESSH é construído para dar aos operadores mais visibilidade sem esconder o que a ferramenta está fazendo em nome deles.
cargo build
cargo test
cargo clippy --all-targets --all-features -- -D warnings
cargo fmt --check
GitHub Actions executa as mesmas verificações principais em pushes e pull requests para main.
Contribuições são bem-vindas.
cargo test, cargo clippy --all-targets --all-features -- -D warnings, e cargo fmt --check.MIT. Veja LICENSE.
ESSH é SSH nativo do terminal com um pouco mais de ambição.
| Pilar | O Que Você Obtém |
|---|
| Fluxo de trabalho focado em frotas | Navegue por hosts, filtre por tag, salte entre sessões e distribua comandos entre grupos a partir de um único lugar. |
| Consciência de máquina ao vivo | Monitor de host integrado mostra CPU, memória, disco, carga, taxa de transferência de rede e principais processos em tempo real. |
| Profundidade operacional | Encaminhamento de porta, transferência de arquivos, hosts de salto, notificações, gravações, reconexões e logs de auditoria fazem parte do produto, não adicionados depois. |
| Stack puramente Rust | Construído sobre russh, ratatui, e vt100 sem dependência da interface do OpenSSH. |
| Tecla | Ação |
|---|
? / Alt+h | Sobreposição de ajuda |
Alt+1 - Alt+9 | Pular para sessão |
Alt+← / Alt+→ | Alternar sessões |
Alt+Tab | Última sessão usada |
Ctrl+p | Paleta de comandos |
Alt+t | Alternar tema |
Alt+d | Desanexar para dashboard |
Alt+w | Fechar sessão |
| Tecla | Ação |
|---|
Alt+m | Monitor de host |
Alt+s | Painel dividido |
Alt+[ / Alt+] | Redimensionar painel |
Alt+f | Navegador de arquivos |
Alt+p | Encaminhamento de porta |
Alt+r | Renomear aba |
| Tecla | Ação |
|---|
1 - 4 | Alternar abas |
j / k / ↑ / ↓ | Navegar por hosts |
Enter | Conectar |
/ | Filtro ao vivo |
a | Adicionar host |
d | Excluir host |
r | Atualizar |
t | Alternar tema |