콘텐츠로 이동

인증 및 SSH Agent

안전한 연결 인증은 PhanTerm의 핵심입니다. 당사는 이중 저장 트랙 메커니즘과 네이티브 에이전트 통합을 사용하여 자격 증명을 항상 안전하게 보호합니다.

기본 연결 비밀번호, 점프 호스트 비밀번호, SSH 개인 키 보호 암호 등 모든 자격 증명에 대해 PhanTerm은 엄격한 로컬 암호화 보호를 제공합니다.

  • Windows 사용자: 0.13.0 버전으로 업데이트한 후 PhanTerm은 자격 증명을 자동으로 처리하여 더 높은 수준의 Windows CNG(Cryptography Next Generation) 암호화 보호로 마이그레이션합니다. 이 프로세스는 완전히 자동으로 이루어지며, 기존의 Windows Credential Manager보다 더 강력한 격리 및 보안을 제공합니다.
  • macOS / Linux 사용자: PhanTerm은 사용자의 운영 체제의 **시스템 키링(System Keyring)**에 비밀번호를 우선적으로 저장합니다.

자격 증명은 항상 로컬에 안전하게 보관됩니다 사용자의 비밀번호와 자격 증명은 절대로 클라우드에 업로드되지 않습니다. 위의 시스템 수준 키 관리를 사용할 수 없는 경우(예: 일부 헤드리스 Linux 서버), PhanTerm은 안전하게 대체 방법으로 로컬의 강력한 난수 키를 사용하여 AES-256-GCM으로 암호화하여 저장하며, 암호문은 로컬의 connections.yaml에 저장됩니다.

연결을 생성하거나 편집할 때 Auth TypeKey로 설정하고 개인 키 파일의 경로(예: ~/.ssh/id_ed25519)를 선택할 수 있습니다. PhanTerm은 로그인 인증을 위해 이 키를 안전하게 읽어 들이며, 비밀번호로 보호된 개인 키를 복호화하기 위한 입력창을 자동으로 표시할 수 있습니다.

PhanTerm은 SSH Agent를 완벽하게 지원하므로 개인 키 비밀번호를 반복해서 입력할 필요가 없습니다.

운영 체제에서 이미 SSH Agent를 실행 중인 경우:

  • Windows: PhanTerm이 OpenSSH Agent (\\.\pipe\openssh-ssh-agent)를 자동으로 감지하고 브리징합니다.
  • macOS / Linux: SSH_AUTH_SOCK를 자동으로 감지하고 브리징합니다.

시스템 수준의 Agent를 사용하지 않더라도 PhanTerm은 메모리 내에서 자체 Agent 서비스를 실행합니다. 연결 설정에서 Forward Agent를 활성화하면 PhanTerm은 RFC 4254 프로토콜을 통해 자격 증명을 원격 서버로 안전하게 포워딩합니다. 이를 통해 원격 환경에 개인 키 파일을 복사하지 않고도 원격 서버에서 Git 저장소를 직접 가져오거나 다른 머신으로 이동할 수 있습니다.

인증 우선순위: 여러 인증 방법이 동시에 활성화된 경우 PhanTerm은 다음 순서로 로그인을 시도합니다:

  1. 시스템 Agent에서 제공한 키
  2. PhanTerm 내장 Agent에서 제공한 키
  3. 지정된 개인 키 파일
  4. 사용자 이름 및 비밀번호

하드웨어 보안 키 및 암호화 인증

섹션 제목: “하드웨어 보안 키 및 암호화 인증”

PhanTerm은 FIDO2/U2F 기반 하드웨어 보안 키(예: YubiKey 또는 Windows Hello)를 완벽하게 지원합니다. 이 인증 방식은 개인 키를 물리적 하드웨어 또는 TPM 칩에 안전하게 잠가두어 암호화 수준의 강력한 신원 확인을 제공하며, 디스크나 메모리를 읽어 자격 증명을 탈취하려는 악성코드의 공격을 근본적으로 차단합니다.

물리적 보안 키(YubiKey 등) 브리징 가이드

섹션 제목: “물리적 보안 키(YubiKey 등) 브리징 가이드”

물리적 보안 키를 사용하는 경우 PhanTerm은 시스템 SSH Agent를 통해 원활하게 브리징할 수 있습니다 (macOS, Linux 및 Windows 지원):

  1. 터미널에서 ssh-add를 실행하여 보안 키를 운영 체제의 SSH Agent에 로드합니다 (예: ssh-add ~/.ssh/id_ed25519_sk).
  2. PhanTerm 연결 폼에서 Auth TypeKey로 설정합니다.
  3. Key Path를 보안 키의 공개 키 또는 개인 키 스터브(stub) 파일로 지정하면 바로 사용할 수 있습니다.

Windows 사용자를 위해 PhanTerm은 네이티브 Windows Hello 하드웨어 키 통합을 제공합니다. 즉, 내보낼 수 없는 보안 키를 장치의 TPM 칩 내에서 직접 생성할 수 있습니다.

보안 이점: 개인 키는 TPM 칩 내부에서 생성되고 영구적으로 상주하며 내보낼 수 없습니다. 이는 로컬 트로이 목마나 승인되지 않은 프로세스가 일반 텍스트 비밀번호나 소프트웨어 개인 키를 몰래 탈취하는 것을 효과적으로 방지합니다.

1. 원클릭 업그레이드 경로 (강력 권장)

섹션 제목: “1. 원클릭 업그레이드 경로 (강력 권장)”

이전에 비밀번호를 사용하여 서버에 로그인한 경우, “원클릭 업그레이드” 기능을 사용하여 하드웨어 보호 방식으로 원활하고 안전하게 업그레이드하는 것을 강력히 권장합니다:

  1. 평소와 같이 비밀번호를 사용하여 서버에 성공적으로 연결합니다.
  2. 성공적으로 연결된 후 인터페이스 오른쪽 하단에 “하드웨어 보호로 업그레이드” 알림 배너가 나타납니다.
  3. 업그레이드에 동의하면 시스템은 Windows Hello 인증(지문/얼굴/PIN)을 요청하고 하드웨어에 바인딩된 보안 키를 로컬에 자동으로 생성합니다.
  4. PhanTerm은 현재 활성 세션을 자동으로 재사용하여 새로 생성된 공개 키를 원격 서버의 ~/.ssh/authorized_keys에 안전하게 푸시합니다.
  5. 시스템은 새 키를 사용하여 자동으로 백그라운드 확인을 수행합니다. 확인이 완료되면 로컬에 저장된 비밀번호를 영구적으로 완전히 파기합니다.

새 연결을 만들 때 폼 내에서 직접 하드웨어 바인딩 키 생성을 선택할 수도 있습니다.

하드웨어 보안 키의 특성을 충분히 이해할 수 있도록 다음의 예상되는 보안 메커니즘을 유의해 주십시오:

  • 매번 필수적인 검증: TPM의 하드웨어 게이트키핑 메커니즘과 WebAuthn 사양의 엄격한 요구 사항으로 인해 PhanTerm은 인증 상태를 메모리에 캐시하지 않으며 캐시할 수도 없습니다. 즉, 연결, 재연결 또는 핸드셰이크 서명을 트리거할 때마다 운영 체제는 반드시 Windows Hello(지문/얼굴/PIN) 인증 프롬프트를 띄웁니다. 이 작업은 우회할 수 없으며 핵심적인 보안 설계의 일부입니다.
  • 내장 캐싱의 특성: PhanTerm에 내장 Agent 캐싱 메커니즘이 포함되어 있음을 알 수 있습니다. 이 캐시는 디스크 I/O 및 키 일치 시간을 줄이기 위해 ssh.Signer 런타임 개체를 저장하는 용도로만 사용되며, 생체 인증 요구 사항을 면제하는 것은 아닙니다.