VNTerm 문서
설치부터 기기 간 호스트 동기화까지 간단한 안내입니다.
앱 설치
다운로드 페이지에서 사용 중인 운영체제용 설치 파일을 받으세요.
macOS (11+, Apple Silicon & Intel)
VNTerm_<버전>_aarch64.dmg파일을 열고 VNTerm을 Applications 폴더로 드래그하세요.- 처음 실행할 때 macOS에서 개발자를 확인할 수 없다는 메시지가 나오면 앱을 오른쪽 클릭 → Open을 선택하세요.
Ubuntu / Debian (22.04+, x86_64)
sudo apt install ./vnterm_*_amd64.deb
또는 설치가 필요 없는 AppImage 버전을 사용하세요:
chmod +x VNTerm_*_amd64.AppImage && ./VNTerm_*_amd64.AppImage
Windows 10/11 (x64)
VNTerm_*_x64-setup.exe를 실행합니다(GPO/Intune 배포 시에는 VNTerm_*_x64_en-US.msi). SmartScreen 경고가 표시되면 More info → Run anyway를 선택하세요.
계정 만들기
계정은 기기 간 vault 동기화에 사용됩니다. 앱에서 바로 가입하거나 가입 페이지에서 가입할 수 있습니다.
- 마스터 비밀번호(최소 8자)는 기기에서 vault 전체를 암호화합니다. 서버로 전송되지 않으며 저희는 이를 복구할 수 없습니다.
- 가입 후 앱이 복구 키를 단 한 번 표시합니다 — 반드시 저장하세요(복구 키 참조).
- 다른 기기에서 같은 계정으로 로그인하면 모든 호스트, 키, 스니펫을 받을 수 있습니다. 기기 목록과 해지 버튼은 계정 페이지에 있습니다.
호스트 추가
- Hosts 섹션에서 New host를 클릭합니다.
- Address(IP 또는 호스트 이름), Label을 입력하고 필요하면 Parent Group과 Tags를 선택합니다.
- SSH 포트(기본값 22), Username, Password를 설정하거나 Keychain의 키 / Identity를 연결합니다.
- 호스트 카드를 더블클릭하여 연결합니다. 처음 연결할 때 앱이 서버의 fingerprint를 보여 주어 확인할 수 있으며, fingerprint는 Known Hosts에 저장되고 변경되면 경고가 표시됩니다.
이미 설정이 있나요? New host → Import from ~/.ssh/config를 선택해 일괄 가져오세요. 호스트 고급 설정에는 agent forwarding, 시작 스니펫, host chaining(jump host), SOCKS5/HTTP 프록시, 개별 터미널 테마가 있습니다.
Keychain & Identity
- 키 생성: Keychain → Generate key에서 ed25519(권장), ECDSA 또는 RSA를 선택하고 필요하면 passphrase를 설정합니다.
- 키 가져오기: 기존 개인 키 파일(OpenSSH / PEM)을 붙여넣거나 선택합니다.
- 서버의
~/.ssh/authorized_keys에 공개 키를 추가한 다음 Credentials 섹션에서 키를 호스트에 연결합니다. - Identity는 사용자 이름 + 비밀번호/키를 하나의 세트로 묶어 여러 호스트에서 재사용합니다. 비밀번호를 한 번만 바꾸면 해당 Identity를 사용하는 모든 호스트에 반영됩니다.
Quick connect: SSH, Mosh, Telnet
Hosts 페이지의 검색창에 주소를 입력하고 Enter 또는 Connect를 누릅니다. 구문:
[ssh|mosh|telnet] [user@]host[:port] [email protected] mosh [email protected] telnet 10.0.0.5:23 [2001:db8::1]:2222
프로토콜을 지정하지 않으면 앱이 SSH, Mosh, Telnet 중 선택하도록 묻고 필요할 때 로그인 정보를 요청합니다.
- SSH — 기본 포트 22, 비밀번호·키·agent 인증을 지원합니다.
- Mosh — 시스템의
mosh클라이언트를 탭에서 실행하여 네트워크가 불안정하거나 Wi-Fi가 바뀌어도 세션을 유지합니다. 로컬 기기에mosh, 서버에mosh-server가 설치되어 있어야 합니다. - Telnet — 기본 포트 23, 구형 네트워크 장비용입니다. Telnet은 암호화되지 않으므로 신뢰할 수 있는 네트워크에서만 사용하세요.
SFTP
SFTP 탭을 엽니다. 왼쪽 창은 로컬 기기, 오른쪽 창은 저장된 호스트입니다. 디렉터리 탐색, 오른쪽 클릭 메뉴로 업로드 / 다운로드, 폴더 생성, 이름 변경, 삭제, 권한 변경(chmod)이 가능합니다. ⌘/Ctrl을 누른 채 클릭하면 여러 파일을 선택할 수 있습니다.
Port forwarding
Port Forwarding 섹션은 규칙을 vault와 함께 저장하며, 각 규칙을 독립적으로 켜고 끌 수 있습니다.
| 유형 | 동등 명령 | 사용 시점 |
|---|---|---|
| Local (L) | ssh -L 5432:db.internal:5432 host | 로컬 기기의 포트를 통해 서버 뒤의 서비스(예: 내부 데이터베이스)에 접근합니다. |
| Remote (R) | ssh -R 8080:localhost:3000 host | 서버가 로컬 기기에서 실행 중인 서비스에 접근하도록 합니다. |
| Dynamic (D) | ssh -D 1080 host | 로컬 SOCKS5 프록시를 만들어 모든 트래픽을 서버를 통해 전송합니다. |
데이터베이스
Databases 메뉴에서 MySQL, MariaDB, PostgreSQL, SQLite에 연결합니다. 연결 정보(비밀번호 포함)는 호스트처럼 종단간 암호화되어 vault에 저장됩니다. SSH 호스트를 통해 연결에서 호스트를 고르면 포트 포워딩 규칙 없이 SSH 터널을 거칩니다. 데스크톱과 휴대폰 모두에서 사용할 수 있습니다.
- 왼쪽 트리 — 폴더 → 연결 → 데이터베이스 → 테이블, 뷰, 함수, 이벤트, 쿼리. 각 항목은 탭으로 열리며, 마우스 오른쪽 클릭(휴대폰에서는 길게 누르기)으로 메뉴를 엽니다.
- 데이터 — 셀을 클릭해 편집하고 포인터를 벗어나면 저장됩니다. 행 번호로 행을 선택한 뒤 ⌘/Ctrl+C, ⌘/Ctrl+V로 새 행을 추가합니다. 필터, 정렬, CSV / JSON / SQL 내보내기, CSV 가져오기를 지원합니다.
- 테이블 디자이너 — 필드, 인덱스, 외래 키, 트리거, 체크 제약, 옵션. 저장 전에 SQL을 미리 볼 수 있습니다.
- 읽기 전용 — 쿼리는 읽기 전용으로 시작합니다. 쓰려면 스위치를 끄세요.
Serial
Hosts 페이지 → Serial: 포트(예: /dev/ttyUSB0, COM3)와 baud rate(300 – 921600, 기본값 9600)를 선택합니다. Advanced에서 data bits, parity, stop bits를 조정합니다. Linux에서는 serial 포트를 열려면 계정이 dialout 그룹에 속해야 합니다.
Remote Desktop
데스크톱 앱의 탭 안에서 바로 Windows 컴퓨터를 제어하세요. Windows에 설치하거나 설정할 것이 없습니다 — 원격 데스크톱이 켜져 있고(Settings → System → Remote Desktop) 3389 포트에 접근할 수 있으면 됩니다.
- New host → Remote Desktop을 선택하고 주소, 사용자 이름(필요하면 도메인 포함, 예:
CORP\admin), 비밀번호를 입력합니다. - 호스트를 더블클릭하면 Windows 화면이 열립니다. 해상도는 탭 크기에 맞춰집니다.
- 탭 도구 모음: 화질(네트워크 속도에 따른 자동 또는 고정), GFX(RDP 8+ 그래픽, 기본 사용), Ctrl + Alt + Del 버튼, 화면 분할, 플로팅 창, 공유.
- 텍스트 복사 / 붙여넣기가 내 컴퓨터와 Windows 사이에서 양방향으로 작동합니다.
- 단축키는 Windows로 전달됩니다. Mac에서는 ⌘ + C / V / X / Z / A / F / S가 Ctrl이 되고, 다른 ⌘ 조합은 Windows 키가 됩니다. ⌘ W는 여전히 탭을 닫습니다.
- 느린 네트워크: 자동 모드가 화질을 낮춰 반응성을 유지하고, 네트워크가 좋아지면 다시 높입니다.
탭 & 탭 그룹
- 각 세션은 하나의 탭이며, 같은 호스트에 여러 세션을 열면 Onik (1), Onik (2)처럼 번호가 붙습니다.
- 탭을 다른 탭 위로 드래그하여 그룹으로 묶습니다. 그룹은 해제하거나 한 번에 모두 닫을 수 있습니다.
- 탭 바의 + 버튼으로 빠른 연결 또는 로컬 터미널을 엽니다.
플로팅 창
탭을 오른쪽 클릭 → Float on top을 선택하면 터미널(또는 원격 데스크톱 화면)이 항상 위에 있는 작은 창으로 분리됩니다. 다른 작업을 하면서 로그나 빌드를 지켜볼 때 편리합니다. 플로팅 창을 닫으면 세션이 탭으로 돌아갑니다.
Multiplayer
탭을 오른쪽 클릭 → Multiplayer로 공유 링크를 만드세요. 받는 사람은 계정 없이 브라우저에서 엽니다. 내용은 종단간 암호화되며 키는 링크의 # 뒤에 있어 서버가 읽을 수 없습니다. 보는 사람의 입력(또는 원격 데스크톱 제어) 권한을 켜고 끌 수 있고 언제든 공유를 중지할 수 있습니다.
테마 & 인터페이스
Settings에서 기본 터미널 테마, 글꼴 크기, 인터페이스 언어를 선택합니다. 호스트마다 별도 테마를 지정할 수 있으며(호스트 편집 패널), 테마가 없는 호스트는 계정의 기본 테마를 사용합니다. 이 설정은 vault와 함께 동기화됩니다.
단축키
| 동작 | macOS | Linux / Windows |
|---|---|---|
| 로컬 터미널 열기 | ⌘ ⇧ T | Ctrl Shift T |
| 터미널에서 복사 | ⌘ C | Ctrl Shift C |
| 터미널에 붙여넣기 | ⌘ V | Ctrl Shift V |
| 검색창에서 빠른 연결 | Enter | |
| 패널 / 대화 상자 닫기, 검색 취소 | Esc | |
| SFTP에서 여러 파일 선택 | ⌘ + click | Ctrl + click |
동기화 & 종단 간 암호화
VNTerm은(는) 기기에서 보관함을 암호화합니다. 서버는 암호화된 데이터만 저장하며 마스터 비밀번호를 받지 않습니다. Google / Apple / Telegram 빠른 로그인이 켜져 있는 동안(기본값) 새 기기에서 보관함을 열 수 있도록 서버가 암호화된 보관함 키 사본도 보관합니다. 앱의 설정 → 계정에서 끌 수 있습니다.
- 마스터 비밀번호 → PBKDF2-SHA256(600 000회) → master key. 여기서 auth key(로그인 시 서버로 전송되며 서버는 Argon2id로 저장)와 enc key(기기에만 존재)가 파생됩니다.
- 각 호스트, 키, 스니펫… 은 동기화 전에 무작위 vault key로 AES-256-GCM 암호화됩니다. vault key는 enc key로 감싸집니다.
- 모든 API 요청은 HTTPS 내부에서 한 번 더 암호화됩니다(X25519 + AES-256-GCM, 엔드포인트와 시점에 바인딩, 재전송 공격 방지).
- revision 기반 동기화: 두 기기에서 같은 항목을 동시에 수정하면 조용히 덮어쓰지 않고 충돌로 감지합니다.
복구 키
복구 키는 마스터 비밀번호를 잊었을 때 vault 데이터를 유지하는 유일한 방법입니다.
- 키(
XXXX-XXXX-…형식)를 비밀번호 관리자나 인쇄본 등 안전한 곳에 보관하세요. - 비밀번호를 잊은 경우: 비밀번호 찾기에서 이메일로 받은 6자리 코드를 입력하고 새 비밀번호를 설정한 뒤 복구 키를 붙여넣으면 vault가 그대로 유지됩니다.
- 복구 키가 없는 경우: 기존 vault가 삭제되고 빈 vault와 새 복구 키를 받게 됩니다. 비밀번호 재설정 후 모든 기기에서 로그아웃됩니다.
Team vault
- 상단 바의 Vaults ▾ 버튼 → Add vault: 이름을 정하고 이메일로 구성원을 초대합니다.
- 호스트 메뉴 → Move to vault로 호스트(와 연결된 키 / identity)를 팀 보관함에 넣습니다.
- Vaults ▾ 메뉴에서 보관함을 클릭해 숨기거나 표시하고, only로 그 보관함만 볼 수 있습니다. 이 설정은 현재 기기에만 적용됩니다.
- Manage vaults(Settings → Invite People)에서 구성원과 대기 중인 초대를 볼 수 있으며, 구성원을 제거하면 즉시 접근 권한이 회수됩니다.
새 구성원은 앱을 한 번 열어 키 쌍을 만들어야 합니다. 그러면 키를 가진 구성원이 자동으로 보관함 키를 봉인해 줍니다.
플랜 & 결제
요금제 페이지에서 플랜을 보고 구매하세요. 카드(Stripe) 또는 PayPal로 월간 또는 연간 결제하며, 할인 코드를 입력할 수 있습니다. 선불 플랜이라 자동으로 청구되지 않습니다 — 만료 전에 알림 이메일을 받고 계정 페이지에서 갱신합니다.
- 결제 후 몇 초 안에(또는 앱으로 돌아올 때) 앱에서 기능이 열립니다.
- Team / Business 플랜은 시트 단위이며, 팀 보관함의 구성원은 플랜의 기능을 사용합니다.
- 플랜이 끝나도 데이터는 사라지지 않습니다: 모든 기기에서 보관함을 받을 수 있고, 플랜 기능만 다시 잠깁니다.