
Расширенный SSH-клиент с TUI — управление подключениями, ключами и сессиями
███████╗███████╗███████╗██╗ ██╗
██╔════╝██╔════╝██╔════╝██║ ██║
█████╗ ███████╗███████╗███████║
██╔══╝ ╚════██║╚════██║██╔══██║
███████╗███████║███████║██║ ██║
╚══════╝╚══════╝╚══════╝╚═╝ ╚═╝
Enhanced SSH for people with fleets
Один терминал. Множество SSH-сессий. Информация о хосте в реальном времени. Никакого переключения контекста.
ESSH — это SSH-клиент на чистом Rust с острым TUI, вдохновлённым Netwatch, для операторов, которым нужно нечто большее, чем просто голая оболочка.
Подключайтесь быстро, наблюдайте за состоянием хоста в реальном времени, перемещайте файлы, управляйте пробросами и ведите чистый аудит, не покидая терминал.
Большинство SSH-инструментов останавливаются на «вы подключены». ESSH создан для того, что происходит после.
ESSH для тех, кто управляет реальными системами и хочет, чтобы SSH-клиент был инструментом для работы, а не просто транспортом.

Дашборд, мультисессионный терминал, монитор хоста, разделённая панель, палитра команд, файловый браузер и проброс портов в одном потоке.
ESSH в настоящее время поддерживает только сборки для macOS и Linux.
cargo install essh
git clone https://github.com/matthart1983/essh.git
cd essh
cargo build --release
./target/release/essh
Windows не является поддерживаемой целевой платформой для локальной сборки на данный момент.
# Запуск дашборда
essh
# Прямое подключение
essh connect user@host
# Использование конкретного ключа
essh connect user@host -i ~/.ssh/id_ed25519
# Использование зашифрованного ключа (ESSH запросит парольную фразу)
essh connect user@host -i ~/.ssh/id_ed25519_encrypted
# Импорт хостов из вашего существующего SSH-конфига
essh hosts import
# Выполнение команды на группе, помеченной тегом
essh run web-servers -- uptime
При первом запуске ESSH создаёт ~/.essh/ и предоставляет рабочий конфиг, кэш хостов SQLite, каталог диагностики и путь для журнала аудита.
┌─ 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 │
└───────────────────────────────────────────────────────────────────┘
Идея проста: точность терминала, когда нужна оболочка, и операционные сигналы, когда нужен контекст.
Alt+1-9, Alt+←/→ и Alt+Tab.Alt+s.~/.ssh/config.strict, prompt и auto.essh hosts import
ESSH поддерживает закрытые ключи, защищённые парольной фразой, как для прямых CLI-подключений, так и для TUI.
# Одноразовое CLI-подключение с зашифрованным ключом
essh connect user@host -i ~/.ssh/id_ed25519_encrypted
# Добавление зашифрованного ключа в локальный кэш ключей
essh keys add ~/.ssh/id_ed25519_encrypted --name laptop-key
Чего ожидать:
ssh-agent по-прежнему работает.[[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 поставляется с тем же набором встроенных тем, что и NetWatch: dark, light, solarized, dracula и nord.
Используйте t в представлениях дашборда или Alt+t из любой сессии, чтобы мгновенно переключать темы. Выбранная тема сохраняется в ~/.essh/config.toml как:
theme = "dark"
essh # запуск дашборда
essh connect user@host # прямая SSH-сессия
essh hosts list # список кэшированных хостов
essh hosts import # импорт из ~/.ssh/config
essh keys list # список кэшированных ключей
essh diag <session-id> # просмотр диагностики
essh session list # список записей
essh session replay <session-id> # воспроизведение записи
essh audit tail --lines 20 # просмотр последних событий аудита
essh config show # вывод активного конфига
ESSH хранит своё состояние в ~/.essh/.
~/.essh/
├── config.toml # основная конфигурация
├── cache.db # кэш хостов и ключей
├── audit.log # структурированный журнал аудита
├── sessions/ # журналы диагностики по сессиям
├── recordings/ # записи asciicast
└── known_cas/ # доверенные центры сертификации
Полезные команды:
essh config init
essh config edit
essh config show
Если вам нужна полная спецификация конфигурации и архитектуры, см. SPEC.md.
strict, prompt или auto.ESSH создан, чтобы дать операторам больше видимости, не скрывая, что инструмент делает от их имени.
cargo build
cargo test
cargo clippy --all-targets --all-features -- -D warnings
cargo fmt --check
GitHub Actions выполняет те же основные проверки при пушах и запросах слияния в main.
Вклад приветствуется.
cargo test, cargo clippy --all-targets --all-features -- -D warnings и cargo fmt --check.MIT. Смотрите LICENSE.
ESSH — это терминальный SSH с чуть большей амбициозностью.
| Основа | Что вы получаете |
|---|
| Работа с флотом как приоритет | Просмотр хостов, фильтрация по тегам, переключение между сессиями и выполнение команд на группах из одного места. |
| Мониторинг машины в реальном времени | Встроенный монитор хоста показывает CPU, память, диск, нагрузку, пропускную способность сети и топ-процессы в реальном времени. |
| Операционная глубина | Проброс портов, передача файлов, прыжковые хосты, уведомления, записи, переподключения и журналы аудита — часть продукта, а не прикручены позже. |
| Стек на чистом Rust | Построен на russh, ratatui и vt100 без зависимостей от UI OpenSSH. |
| Клавиша | Действие |
|---|
? / Alt+h | Справка |
Alt+1 - Alt+9 | Переход к сессии |
Alt+← / Alt+→ | Цикл по сессиям |
Alt+Tab | Последняя использованная сессия |
Ctrl+p | Палитра команд |
Alt+t | Цикл по темам |
Alt+d | Вернуться на дашборд |
Alt+w | Закрыть сессию |
| Клавиша | Действие |
|---|
Alt+m | Монитор хоста |
Alt+s | Разделённая панель |
Alt+[ / Alt+] | Изменить размер разделённой панели |
Alt+f | Файловый браузер |
Alt+p | Проброс портов |
Alt+r | Переименовать вкладку |
| Клавиша | Действие |
|---|
1 - 4 | Переключение вкладок |
j / k / ↑ / ↓ | Навигация по хостам |
Enter | Подключиться |
/ | Фильтр на лету |
a | Добавить хост |
d | Удалить хост |
r | Обновить |
t | Цикл по темам |