소개
sshm-rs는 Rust로 작성된 TUI(텍스트 사용자 인터페이스) 기반 SSH 연결 관리자로, 통합 터미널과 SFTP 파일 브라우저를 통해 원격 서버 접속과 파일 전송을 키보드 중심으로 처리할 수 있도록 돕는 오픈소스 도구입니다. bit5hift가 GitHub에서 MIT 라이선스로 공개하고 있으며, Windows, Linux, macOS를 모두 지원하는 단일 바이너리 형태로 배포됩니다.
상세정보
메인 TUI (sshm-rs)
- ~/.ssh/config 파싱 및 Include 디렉티브 확장을 통한 호스트 목록 관리
- tag:, user:, host: 필드 접두사를 활용한 퍼지 검색과 다중 선택, 비동기 연결 상태 표시
- 호스트 추가·편집·삭제, 즐겨찾기, 그룹·태그 구성과 연결 이력 자동 기록
- 로컬·원격·다이내믹 SSH 포트 포워딩 설정
- 사전 정의 명령 스니펫 저장 및 여러 호스트 대상 일괄 명령 실행
- 8종 기본 테마(Tokyo Night, Catppuccin Mocha, Dracula, Nord, Gruvbox Dark, Solarized Dark, One Dark, High Contrast)와 JSON 기반 커스텀 테마 지원
- OS 키링 기반 안전한 비밀번호 저장 및 호스트 정보 클립보드 복사
통합 터미널 (sshm-rs term)
- 의사 TTY를 지원하는 완전 대화형 SSH 셸과 VT100 이스케이프 시퀀스 기반 신택스 강조
- SFTP 브라우저에서 원격 파일시스템 탐색과 진행률 표시 업로드·다운로드
- OSC 7을 활용한 SFTP 패널의 터미널 작업 디렉터리 자동 추적
- 로컬 편집기로 원격 파일 수정, 우클릭 컨텍스트 메뉴(편집, 다운로드, 업로드, 삭제, 압축 등) 지원
- 다중 파일을 ZIP으로 묶어 내려받기 등 배치 작업 및 터미널 내 스니펫 오버레이 제공
설치 및 기본 사용
운영체제에 맞는 패키지 관리자나 사전 빌드된 바이너리를 통해 설치할 수 있습니다.
설치 방법
- Windows(winget): winget install bit5hift.sshm-rs
- macOS/Linux(Homebrew): brew tap bit5hift/tap 후 brew install sshm-rs
- Cargo(cargo install –git https://github.com/bit5shift/sshm-rs)를 사용한 소스 빌드
- GitHub Releases의 사전 빌드 바이너리 또는 제공되는 install.sh, install.ps1 설치 스크립트 활용
기본 사용 흐름
- 터미널에서 sshm-rs를 실행하여 메인 TUI를 열고 호스트 목록을 확인합니다.
- / 키로 호스트를 퍼지 검색하거나 호스트 위에서 Enter를 눌러 연결합니다.
- W 키 또는 sshm-rs term user@host 명령으로 통합 터미널과 SFTP 브라우저를 동시에 실행합니다.
- SFTP 패널에서 e 키로 파일을 편집하거나 d/u 키로 다운로드·업로드하고, Ctrl+s로 패널을 전환합니다.
- 연결·스니펫·테마 설정은 ~/.config/sshm-rs/(Windows: %APPDATA%sshm-rs) 아래 설정 파일에 저장됩니다.
활용 예시
- 여러 개발·운영 서버를 태그와 그룹으로 분류해 한 화면에서 빠르게 검색·연결
- 원격 서버 점검 시 자주 쓰는 df, ps 등 명령을 스니펫으로 등록해 즉시 실행
- 통합 터미널에서 로그를 살펴보는 동시에 SFTP 패널로 설정 파일을 열어 로컬 편집기로 수정
- 다중 호스트에 동일한 명령을 브로드캐스트하거나 여러 파일을 ZIP으로 묶어 내려받기
제한·라이선스·확인사항
본 패키지는 MIT 라이선스로 배포되며 소스 코드는 GitHub 저장소에서 자유롭게 확인할 수 있습니다. TUI 환경이라 마우스 사용은 제한적이며, SFTP 기능은 원격 서버의 sftp-server 서브시스템 가용 여부에 의존합니다. 비밀번호는 OS 키링에 저장되어 키링 인증이 필요하고, 자동화 시 SSHM_PASSWORD 환경 변수를 사용할 수 있습니다.
시스템 요구사항
원격 SSH 서버에 접근 가능한 네트워크 환경이 필요하며, SFTP 파일 브라우저 사용 시 원격 서버에 sftp-server 서브시스템이 활성화되어 있어야 합니다. 자격 증명은 OS 키링(Linux의 secret-service, macOS의 Keychain, Windows의 Credential Manager)에 저장되며, 키링 잠금 해제 시 사용자 인증이 요구됩니다. SSH 공개키 인증을 사용할 경우 OpenSSH 또는 PuTTY 형식 개인키와 SSH 에이전트(SSH_AUTH_SOCK)를 활용할 수 있습니다.


