
TUI를 갖춘 향상된 SSH 클라이언트 — 연결, 키, 세션 관리
███████╗███████╗███████╗██╗ ██╗
██╔════╝██╔════╝██╔════╝██║ ██║
█████╗ ███████╗███████╗███████║
██╔══╝ ╚════██║╚════██║██╔══██║
███████╗███████║███████║██║ ██║
╚══════╝╚══════╝╚══════╝╚═╝ ╚═╝
플릿을 운영하는 사람들을 위한 향상된 SSH
하나의 터미널. 여러 SSH 세션. 실시간 호스트 인사이트. 컨텍스트 전환 제로.
ESSH는 순수 Rust로 작성된 SSH 클라이언트로, Netwatch에서 영감을 받은 날카로운 TUI를 통해 단순한 셸 이상의 기능을 원하는 운영자에게 적합합니다.
빠르게 연결하고, 호스트 상태를 실시간으로 확인하며, 파일을 이동하고, 포워드를 관리하고, 터미널을 떠나지 않고도 깔끔한 감사 추적을 유지하세요.
대부분의 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 기반으로 OpenSSH UI 의존성 없음 |
| 키 | 동작 |
|---|
? / 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 | 테마 순환 |