프로젝트 소개
Eternal Terminal(ET)은 네트워크 중단에도 견디는 원격 셸 클라이언트-서버 시스템입니다. 일반 SSH와 달리 연결이 끊기면 자동으로 재연결하여 사용자가 중단한 지점에서 정확히 세션을 복원합니다. 중단된 명령이나 손실된 출력이 없습니다.
### 작동 방식
ET는 세 가지 구성 요소를 사용합니다.
- **`et`** (클라이언트): 로컬 머신에서 실행됩니다. SSH를 통해 인증한 후 TCP 포트 2022를 통한 지속적인 ET 연결로 전환합니다.
- **`etserver`** (서버 데몬): 원격 호스트에서 시스템 서비스(일반적으로 root 관리)로 실행됩니다. 클라이언트 연결을 수락하고 올바른 사용자 세션으로 라우팅합니다.
- **`etterminal`** (서버 측 헬퍼): `et`가 SSH를 통해 실행합니다. 실제 터미널 세션을 호스팅하고 FIFO를 통해 `etserver`에 등록합니다.
### 주요 기능
- **자동 재연결**: 네트워크 끊김, WiFi 전환 또는 VPN 중단이 세션을 종료하지 않습니다.
- **SSH 기반 인증**: 기존 SSH 키와 구성을 활용하여 보안 인증을 수행합니다.
- **포트 포워딩**: 로컬 및 원격 포트 포워딩을 위한 `-t` 플래그를 지원합니다.
- **점프 호스트 지원**: `--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 # 점프 호스트 경유
```
ET는 사용자별 및 시스템 전체 SSH 구성 파일을 모두 읽습니다. 절대 경로와 함께 `--ssh-config`를 전달하여 주변 SSH 구성에서 격리하거나 `--no-ssh-config`로 완전히 비활성화할 수 있습니다.
### 프로토콜 문서
자세한 프로토콜 및 HTM 설계 문서는 저장소의 `docs/`에서 확인할 수 있습니다.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.