Об этом проекте
Eternal Terminal (ET) — это клиент-серверная система удалённой оболочки, переживающая сетевые сбои. В отличие от обычного SSH, при разрыве соединения она автоматически переподключается и восстанавливает сессию точно там, где пользователь её оставил, — без прерванных команд и потерянного вывода.
### Как это работает
ET использует три компонента:
- **`et`** (клиент): Запускается на локальной машине. Аутентифицируется через SSH, затем переключается на постоянное соединение ET по TCP-порту 2022.
- **`etserver`** (серверный демон): Работает как системная служба (обычно управляется root) на удалённом хосте. Принимает клиентские подключения и направляет их в нужную пользовательскую сессию.
- **`etterminal`** (серверный помощник): Запускается командой `et` через SSH. Обслуживает фактическую сессию терминала и регистрируется в `etserver` через FIFO.
### Ключевые возможности
- **Автоматическое переподключение**: Сетевые сбои, переключения WiFi или обрывы VPN не убивают вашу сессию.
- **Аутентификация на основе SSH**: Использует существующие SSH-ключи и конфигурацию для безопасной аутентификации.
- **Проброс портов**: Поддерживает флаг `-t` для локального и удалённого проброса портов.
- **Поддержка jumphost**: Подключение через промежуточные хосты с помощью `--jumphost` и `--jport`.
- **Мультиплексор HTM**: Встроенный мультиплексор терминала (`htm`) поддерживает нативные окна, вкладки и разделения в совместимых эмуляторах терминала, интегрируясь с режимом управления tmux.
- **Настраиваемость**: Серверные параметры находятся в `/etc/et.cfg` (порт, адрес привязки и т. д.).
### Установка
Готовые пакеты доступны для macOS (Homebrew, MacPorts), Ubuntu/Debian (PPA и официальный deb-репозиторий), Fedora, CentOS 8+, FreeBSD, openSUSE и NixOS. Windows поддерживается через WSL. Сборка из исходников также описана для Debian/Ubuntu, CentOS 7 и macOS.
### Использование
```bash
et hostname # порт по умолчанию 2022, текущее имя пользователя
et user@hostname:8000 # пользовательский порт
et hostname --jumphost jump # через jumphost
```
ET читает как пользовательские, так и общесистемные файлы конфигурации SSH; передайте `--ssh-config` с абсолютным путём, чтобы изолироваться от внешней конфигурации SSH, или `--no-ssh-config`, чтобы полностью её отключить.
### Документация протокола
Подробная документация по протоколу и дизайну HTM доступна в репозитории в каталоге `docs/`.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.