omnyssh: macOS 및 Linux용 SSH 클라이언트
요약
OmnySSH는 macOS 및 Linux용 통합 SSH 클라이언트로, 단일 인터페이스에서 여러 서버를 관리하고 상호작용할 수 있게 합니다. 실시간 리소스 모니터링 대시보드, SFTP 브라우저, 스크립트 스니펫 실행 등 강력한 기능을 제공하여 개발 워크플로우를 혁신합니다.
핵심 포인트
- 다중 서버 관리를 위한 통합 대시보드를 제공합니다.
- 실시간 CPU/RAM 사용량 및 프로세스 목록을 시각화합니다.
- SFTP 브라우저와 스니펫 실행 기능으로 파일 전송과 명령어 자동화를 지원합니다.
- SSH 키 설정 과정을 원클릭으로 처리하여 보안 인증 절차를 간소화했습니다.
macOS와 Linux에서 하나의 명령어로 사용 가능합니다:
curl -fsSL https://raw.githubusercontent.com/timhartmann7/omnyssh/main/install.sh | sh
이 스크립트는 OS와 아키텍처를 감지하여 최신 데스크톱 빌드를 설치하며, macOS에서는 /Applications에, Linux에서는 앱 메뉴에 배치됩니다. 터미널 앱을 원하거나 둘 다 원하시나요? curl … | sh -s -- --tui (또는 --both)를 사용하세요.
클릭하는 것을 선호한다면 Releases에서 플랫폼별 파일을 다운로드할 수 있습니다.
| Platform | File |
|---|---|
| macOS Apple Silicon | OmnySSH-aarch64-apple-darwin.dmg |
| ... |
계정, 로그인 화면, 텔레메트리가 없습니다. 앱을 열면 빈 대시보드가 나타나며, 기존에 존재하는 ~/.ssh/config가 있다면 이를 읽어와서 bastion 뒤에 있는 호스트(ProxyJump)를 포함합니다.
서버를 한 번 추가하면, 그 서버는 실시간 CPU, RAM 및 디스크 사용량, 가동 시간(uptime), 배포판 정보(distro), CPU를 많이 사용하는 상위 프로세스 목록, 그리고 해당 서버에서 실행되는 내용을 보여주는 배지 형태로 대시보드에 표시됩니다. sh 버튼을 한 번 클릭하면 실제 PTY 터미널로 진입합니다. files 버튼을 한 번 클릭하면 두 개의 패널 SFTP 브라우저가 열립니다. 하나의 화면에 10개의 서버를 배치할 수 있으며, 이들은 자체적으로 새로고침됩니다.
CPU, RAM 및 디스크 바, 가동 시간, OS 버전, 상위 프로세스, 그리고 컨테이너 개수를 보여주는 Docker 배지가 있는 모든 호스트별 카드가 제공됩니다. 바가 노란색을 거쳐 빨간색으로 변하기 때문에, 멀리서도 문제가 생긴 서버를 쉽게 알아챌 수 있습니다.
탭에서 전체 PTY 세션이 가능합니다. 필요한 만큼 많은 서버를 열고, 사이드바에서 전환하며, 대시보드에서 작업하는 동안 계속 실행 상태로 유지할 수 있습니다.
왼쪽은 로컬, 오른쪽은 원격입니다. 전송하려는 파일을 선택하고 이동시키며 진행률 표시줄을 확인하고 여러 개를 한 번에 선택할 수 있습니다. 아무도 scp -r 구문을 기억하지 못합니다.
매주 붙여넣는 명령어를 저장하세요. 스니펫을 선택하고, 해당 서버들을 지정한 후 실행하면 모든 서버에서 동시에 실행됩니다. 스니펫은 매개변수를 받기 때문에, sudo systemctl restart {{service}}와 같은 명령어는 서비스 이름을 묻습니다.
⌘K를 누르고 타이핑하기 시작하세요. 가지고 있는 모든 호스트와 이미 열려있는 모든 세션이 표시됩니다. Enter를 누르면 선택한 호스트의 터미널로 진입하거나, 떠났던 세션으로 돌아갑니다.
화면에 표시되는 모든 실제 IP를 가짜 IP로 대체합니다. 클라이언트 인프라가 노출되지 않도록 데모를 녹화하거나 화면을 공유할 수 있습니다.
두 기능 모두 앱에 포함되어 있습니다. 사이드바에서 전환하세요.
세션이 여러 개 열린 상태에서 RAM 약 130MB, 다운로드 용량은 20MB입니다. 같은 기기에서 아무것도 하지 않는 Termius는 아홉 개의 프로세스에 걸쳐 649MB를 차지했습니다. 비교표에 전체 수치가 나와 있습니다.
새 VPS(Virtual Private Server)의 비밀번호 인증 방식은 항상 고치고 싶지만 절대 건드리지 못하는 부분입니다. OmnySSH가 원클릭으로 처리합니다.
키가 설정되지 않은 사용자가 추가한 호스트를 선택하고 SSH 키 설정을 누르면, 앱이 Ed25519 키를 생성하고 공개 부분을 authorized_keys에 추가하며, 해당 호스트를 키 인증 방식으로 전환합니다. 그런 다음 새 키로 새로운 연결을 열어 키가 작동하는지 확인한 후에야 비밀번호 로그인을 비활성화합니다. 중간에 확인 단계는 없습니다: 흐름을 시작한다는 것은 진행하겠다는 의미입니다.
sshd_config를 건드리기 전에, 서버에 백업본을 저장합니다. 어떤 단계에서든 실패하면 백업본을 복원하여 접근 권한이 원래와 똑같이 유지되도록 합니다. 사용자의 개인 키는 절대 기기를 벗어나지 않으며, 선택한 서버를 제외하고는 아무것도 전송되지 않습니다.
코드는 crates/omnyssh-core/src/ssh/key_setup.rs에 있습니다. 이것을 프로덕션 환경에 적용하기 전에 읽어보세요. 이것이 오픈 소스로 공개하는 전체 목적입니다.
암호 구문(passphrase)이 있는 키도 작동합니다. 키가 암호화되면 OmnySSH는 한 번만 암호 구문을 요청하고 사용자가 종료할 때까지 메모리에 보관하며, 디스크에 기록되지 않습니다. macOS와 Linux에서 이미 ssh-agent에 로드된 키는 요청 없이 사용됩니다. 호스트의 비밀번호(Password) 필드는 서버 로그인 비밀번호이며, 키 암호 구문이 아닙니다.
메모리와 CPU는 두 앱을 열고 유휴 상태일 때 M4 Mac에서 측정되었습니다.
| OmnySSH | Termius | tmux + ssh | |
|---|---|---|---|
| 유휴 RAM | ~130 MB | ~649 MB | 매우 적음 |
| ... |
OmnySSH는 터미널에서 시작되었으며, TUI(Text User Interface)도 여전히 유지되고 있으며, 계속해서 릴리스가 이루어지고 있습니다.
기반 엔진은 동일합니다. 리포지토리는 cargo workspace이며, crates/omnyssh-core가 로직을 담당하고 프론트엔드는 그 위에 구축되었습니다. 대시보드(Dashboard), SFTP, 스니펫(snippets), 다중 세션 탭, 퍼지 검색(fuzzy search) 기능과 네 가지 테마(default, dracula, nord, gruvbox) 및 config.toml에서 재매핑 가능한 키를 지원합니다.
# cargo
cargo install omnyssh
# homebrew
...
그런 다음 omny를 실행합니다. a를 누르면 호스트를 추가하고, /를 누르면 검색을 하고, ?를 누르면 도움말을 얻으며, Shift+K를 눌러 선택된 호스트의 키를 설정할 수 있습니다.
Linux, macOS, Windows 및 Termux용 사전 구축된 TUI 바이너리는 Releases 페이지의 omny-* 파일에서 확인할 수 있습니다. 설정 파일은 Linux에서는 ~/.config/omnyssh/, macOS에서는 ~/Library/Application Support/omnyssh/, Windows에서는 %APPDATA%\omnyssh\에 위치합니다. 사용자의 ~/.ssh/config는 시작 시 읽히며 절대로 쓰여지지 않습니다.
전체 옵션, 키 바인딩 및 설정 예시는 man omny에서 확인할 수 있습니다.
macOS: 네트워크상의 호스트가 "No route to host" 오류로 실패합니다. macOS는 사용자가 허용할 때만 로컬 네트워크의 장치에 앱이 접근하도록 합니다. 시스템 설정(System Settings) → 개인 정보 보호 및 보안(Privacy & Security) → 로컬 네트워크(Local Network)에서 OmnySSH를 켜고, 그 후 앱을 다시 여십시오. omny가 실행되는 터미널 앱도 동일한 권한이 필요하며, Apple의 Terminal은 이미 해당 권한을 가지고 있습니다.
Synology: 비밀번호 입력 직후 "Permission denied, please try again." 메시지가 표시됩니다. DSM(DiskStation Manager)은 관리자 그룹 멤버에게만 셸을 제공하며, 또한 제어판(Control Panel) → 터미널 및 SNMP(Terminal & SNMP) → SSH 서비스 활성화(Enable SSH service)가 켜져 있을 때만 가능합니다. 다른 계정들은 여전히 SFTP를 사용할 수 있습니다.
제가 만들고 있는 것에 대해서는 Telegram에 글을 올립니다. 릴리스 노트, 작업 중인 스크린샷, 벤치마크 및 그 과정에서 발생한 문제점들을 공유합니다. 보통은 다른 곳에 공개되기 전에 먼저 올라옵니다.
풀 리퀘스트(Pull requests) 환영합니다. CONTRIBUTING.md에 설정 방법, 규칙 및 체크리스트가 있습니다. 만약 큰 작업을 계획하고 있다면, 저희 둘 다 만들지 않도록 먼저 이슈를 열어주세요.
워크스페이스 레이아웃:
crates/omnyssh-core 엔진, 프론트엔드 독립적
crates/omnyssh TUI 애플리케이션 (바이너리: omny)
crates/omnyssh-gui Tauri 데스크톱 애플리케이션
Apache 2.0. LICENSE 참조.
AI 자동 생성 콘텐츠
본 콘텐츠는 GitHub Trending Rust (weekly)의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기