인증
DR-Terminal은 세 가지 인증 방식을 지원합니다: 비밀번호, 개인 키, 그리고 FIDO2(YubiKey) 보안 키.
비밀번호
가장 간단한 방법입니다. 저장된 연결에 입력한 비밀번호는 플랫폼의 보안 저장소에 저장됩니다 — JSON 설정에는 절대 저장되지 않습니다. 비밀번호 필드가 비어 있으면 앱은 연결할 때마다 비밀번호를 묻습니다.
공개 키 → 비밀번호 폴백: 서버가 공개 키를 거부하면(예: authorized_keys에 없는 경우) DR-Terminal은 연결을 끊지 않고 자동으로 같은 사용자의 비밀번호를 묻습니다.
개인 키
OpenSSH, PKCS#1, PKCS#8, ssh.com 또는 PuTTY PPK(v2/v3) 형식의 키를 모두 받아들이며 — 형식은 자동으로 감지되므로 .ppk 키도 먼저 변환할 필요 없이 바로 동작합니다. 다음을 할 수 있습니다:
- 연결 양식에 키를 직접 붙여넣기.
- 키 관리자(설정 → 보안 → SSH 키)를 사용하여 저장된 키를 선택하기. 여기에서 가져오는 키 파일은 원시 바이너리 DER일 수도 있습니다.
키가 암호로 보호되어 있으면 DR-Terminal은 그 키를 처음 사용할 때 암호를 묻고, 이후에는 메모리에만 보관합니다 — ssh-agent처럼 앱 실행당 한 번만 잠금을 해제하며, 앱을 닫으면 모든 키가 다시 잠깁니다. 가져온 암호화된 키는 보안 저장소에 원래의 암호화된 형태 그대로 남습니다. 많은 알고리즘을 지원합니다 — RSA, ECDSA(P-256, P-384, P-521), Ed25519, Ed25519-SK, ECDSA-SK(FIDO).
키 생성기
설정 → 보안에는 SSH 키 생성 마법사가 있습니다. 종류(예: ed25519)를 고르고, 암호를 설정한 다음(선택 사항 — 보안 저장소 내부에서도 키를 보호함), 키가 로컬에 저장됩니다. 기본 키 주석은 ${user}@${host}@DR-Terminal로, 서버에서 키를 찾을 때 편리합니다. 공개 키는 서버의 ~/.ssh/authorized_keys에 넣기 위해 클립보드로 복사할 수 있습니다.
목록의 키는 그 자리에서 이름을 바꿀 수 있습니다. 고른 이름이 기존 이름과 충돌하면 앱이 자동으로 (2)를 덧붙입니다.
키 변환기
설정 → 보안 → SSH 키 → 변환은 개인 키를 모든 일반적인 형식 간에 다시 직렬화합니다 — 원본(저장된 키, 파일 또는 붙여넣은 텍스트)과 대상 형식을 고른 다음, 결과를 복사·공유·저장하세요.
양방향 지원 형식:
| 형식 | 읽기 | 쓰기 |
|---|---|---|
OpenSSH (BEGIN OPENSSH PRIVATE KEY) | ✓ | ✓ |
PKCS#8 (BEGIN PRIVATE KEY) | ✓ | ✓ |
PKCS#1 (BEGIN RSA PRIVATE KEY, RSA 전용) | ✓ | ✓ |
| PuTTY PPK — v2 및 v3 | ✓ | ✓ |
입력은 PEM(텍스트), PuTTY PPK 또는 원시 바이너리 DER일 수 있으며 — 형식은 자동으로 감지됩니다. 키 종류: RSA, Ed25519 및 ECDSA(P-256/384/521).
- PuTTY PPK 내보내기가 이제 양방향으로 작동합니다(이전에는 앱이
.ppk를 읽기만 할 수 있었습니다). 버전 선택기로 v3(Argon2id KDF + HMAC-SHA-256, 최신 PuTTY) 또는 v2(이전 PuTTY)를 고르세요. 이렇게 생성된 파일은 PuTTY/puttygen에서 변경 없이 로드됩니다. - 선택적 내보내기 암호. 암호화되지 않은 키를 원하면 비워 두세요. 설정하면 출력이 형식별 강력한 KDF(bcrypt / PBKDF2 / Argon2id)로 암호화됩니다. 보안 및 데이터 → 내보낸 키를 참조하세요.
- 변환에 실패하면(잘못된 원본 암호, 호환되지 않는 형식) 앱이 이제 일반적인 오류 대신 실제 원인을 표시합니다.
PKCS#1은 RSA 키만 설명하므로, 해당 대상은 원본이 RSA 키일 때만 제공됩니다.
비밀번호 연결을 키로 전환하기
authorized_keys를 직접 편집할 필요가 없습니다. 저장된 비밀번호 연결에 대해 DR-Terminal은 두 곳에서 안내형 업그레이드를 제공합니다:
- 연결 목록 — 비밀번호 연결 카드의 키 아이콘이 마이그레이션 마법사를 시작합니다.
- 세션 안에서 — 연결된 비밀번호 세션의 터미널 메뉴에 SSH 키로 전환이 있습니다.
두 경로 모두 같은 흐름으로 진행됩니다: 저장된 키를 고르거나 새 키를 생성하면, DR-Terminal이 기존 비밀번호 로그인을 통해 공개 키를 서버에 배포하고, 키 인증이 실제로 동작하는지 확인한 다음에야 저장된 연결을 키 인증으로 전환합니다. 확인에 실패하면 연결은 그대로 유지됩니다.
보안 키 (FIDO2 / YubiKey)
DR-Terminal은 ed25519-sk 및 ecdsa-sk 키를 처리하며, 앱 내부에서 직접 생성할 수도 있습니다. 외부 ssh-keygen이 필요 없습니다.
DR-Terminal에서 YubiKey 기반 키 생성하기
- 설정 → 보안 → SSH 키 → SSH 키 생성.
- 보안 키 스위치를 켭니다. 알고리즘을 선택합니다 — Ed25519-SK(권장) 또는 ECDSA-SK.
- 안내가 나오면 YubiKey를 터치합니다. 앱이 토큰에 새 자격 증명 생성을 요청하고 공개 키에 서명합니다.
- 키가 DR-Terminal의 키 관리자에 저장됩니다. 공개 키를 복사하여 대상 서버의
~/.ssh/authorized_keys에 붙여넣습니다.
Windows Hello: Windows에서 FIDO2 PIN 입력 창은 앱 내 대화 상자가 아니라 네이티브 Windows Hello 대화 상자(PIN / 지문 / 얼굴)입니다.
Resident 키(YubiKey 자체에 저장됨)는 키 파일을 들고 다닐 필요를 없애줍니다 — 비밀 전체가 토큰에 들어 있습니다. DR-Terminal에서 생성한 키는 non-resident입니다: 자격 증명 핸들이 키 관리자에 보관되며 토큰과 함께 필요합니다.
기존 SK 키 사용하기
다른 곳에서 생성한 id_ed25519_sk / id_ecdsa_sk가 이미 있다면(예: ssh-keygen -t ed25519-sk로 생성), 같은 키 관리자를 통해 가져오세요 — DR-Terminal은 가져온 SK 키와 생성한 SK 키를 동일하게 취급합니다.
연결 시점에
DR-Terminal은 키 터치를 요청합니다. 표시기가 깜빡이면 — 키를 탭하세요. iOS는 NFC와 USB-C를 지원합니다(YubiKey 5Ci 이상). Android — NFC + USB(OTG). 데스크톱은 네이티브 FIDO2 API를 사용합니다(Windows Hello, macOS, Linux는 libfido2 경유).