Назад к обновлениям
New releaseAug 22, 2026

essh v0.3.2

Расширенный SSH-клиент с TUI — управление подключениями, ключами и сессиями

Поделиться

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

crates.io CI License: MIT macOS Linux

Чистый SSH-клиент на Rust с плотным TUI в стиле Netwatch. Несколько сессий, живые метрики хостов и расхождения по всему парку — не покидая терминала.

ESSH Демо

Установка

cargo install essh

Или скачайте готовый бинарник для macOS или Linux, arm64 или x86_64, со страницы Releases.

Из исходников:

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

Запуск

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

Хосты берутся из ~/.ssh/config — включая IdentityFile, ProxyJump и Match, — так что импортировать перед началом ничего не нужно.

Клавиши

Всё основное — в одно нажатие. Шелл сохраняет все комбинации Ctrl, так что Ctrl+D по-прежнему означает EOF, а Ctrl+C — прерывание.

F1 справкаF2 мониторF3 файлыF4 проброс портов
F5 мини-мониторF6 отсоединитьF7/F8 пред./след. сессияF9 новая сессия
F10 меню команд

Для всего остального нажмите Ctrl+A, отпустите, затем нужную клавишу: s — разделить, w — закрыть, t — тема, 19 — перейти к сессии, [/] — изменить размер. Полоса внизу сессии показывает клавиши, актуальные в данный момент, так что запоминать ничего не нужно. Измените префикс с помощью prefix_key в разделе [session].

Комбинации Option/Alt также работают, когда ваш терминал отправляет их как Meta, но функциональным клавишам не нужна настройка, и они ведут себя одинаково на обеих платформах.

Возможности

Несколько сессийВкладки и разделение в одном окне с прокруткой и переподключением для каждой сессии.
Живой монитор хостовCPU, память, диск, сеть и топ процессов; собирается в фоне, так что при открытии вид уже актуален. Без агента — обычные SSH exec-каналы.
РасхожденияСравнивает каждый хост с его группой и показывает, какой хост отличается, по какому параметру и почему.
Передача файловДвухпанельный браузер локальных/удалённых файлов поверх SFTP.
Проброс портовДобавление, просмотр и удаление пробросов без разрыва сессии.
Аудит и воспроизведениеСтруктурированный JSON-журнал аудита; сессии записываются в asciicast для воспроизведения.

Расхождения

Сорок веб-серверов: тридцать девять в порядке, а у одного другое ядро или вручную отредактированный nginx.conf. Колонка зелёных точек структурно не может это показать.

ESSH группирует хосты в группы по тегам, собирает с каждого одни и те же факты и оценивает каждый хост относительно консенсуса группы:

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.

Экран Fleet называет выбивающийся хост и параметры, стоящие за этим выводом, так что заключение можно проверить, а не просто принять на веру. Факты, которые собрать не удалось, помечаются как несобранные — но никогда как совпадающие.

Конфигурация

Состояние хранится в ~/.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

Ключи хостов проверяются и кэшируются с настраиваемой политикой TOFU (strict, prompt, auto). Можно ограничить набор шифров и KEX-алгоритмов.

Полный справочник по конфигурации и архитектуре: 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

Разработка

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

CI запускает все три проверки при каждом пуше.

tests/tui_harness.rs запускает реальный бинарник на PTY и с дедлайном проверяет разобранный экран терминала: значимые сбои в TUI — это отсутствие кадра, а не неверный кадр. Тесты, которым нужен SSH, пропускают себя, если ни один хост недоступен.

Участие в разработке

Сделайте форк, создайте ветку, внесите изменения, запустите три описанные выше проверки и откройте PR.

Лицензия

MIT. См. LICENSE.

Категории