CNG/KSP를 사용하는 네이티브 Windows SSH 에이전트, 종속성 없이, 스마트카드 지원 및 완전한 RDP 호환성

발행: (2026년 3월 2일 오전 05:15 GMT+9)
6 분 소요
원문: Dev.to

Source: Dev.to

CNG/KSP를 사용한 네이티브 Windows SSH 에이전트, 의존성 없음, 스마트카드 지원 및 전체 RDP 호환성을 위한 커버 이미지

Overview

SRO PKCS11 – SSH Agent CNG 은 단일 Windows 실행 파일로 다음을 통합합니다:

  • 전체 PKCS#11 모듈 (Firefox, OpenSC, ssh -I와 호환)
  • OpenSSH 호환 SSH 에이전트
  • PuTTY와 호환되는 Pageant 서버
  • 스마트카드, TPM, Windows Hello 및 엔터프라이즈 인증서를 위한 CNG/KSP 백엔드
  • WSL2 TCP 리스너

외부 종속성, CRT, DLL, 미들웨어가 없으며 RDP, RemoteApp, Citrix, 다중 세션 및 강화된 환경에서도 작동합니다.

Repository: (원본 텍스트에 링크가 제공되지 않음)

Source:

문제: Windows에서 엔터프라이즈 신원을 SSH에 사용할 수 없음

엔터프라이즈 인증서를 SSH에 사용할 수 없음

OpenSSH for Windows는 다음을 사용할 수 없습니다:

  • 내보낼 수 없는 키
  • ADCS에서 발급된 인증서
  • TPM 기반 키
  • Windows Hello 키
  • CNG/KSP를 사용하는 스마트카드

이는 관리자가 디스크에 개인 키를 생성하도록 강제하며, 엔터프라이즈 신원 표준에 비해 퇴보한 상황입니다.

Pageant는 SSH 네이티브가 아님

  • 작동을 위해 숨겨진 창이 필요함
  • PuTTY 솔루션에만 제한됨

gpg‑agent는 Windows 네이티브가 아님

다음 기능을 지원하지 않음:

  • CNG/KSP
  • Windows 스마트카드 미니드라이버
  • 엔터프라이즈 인증서
  • 내보낼 수 없는 키
  • 다중 세션 환경

PKCS#11 모듈은 Windows 인증서 저장소와 통합되지 않음

OpenSC는 다음에 접근할 수 없습니다:

  • TPM 기반 키
  • Windows Hello 키
  • ADCS 인증서
  • 가상 스마트카드

그 결과 기존 도구들은 Windows가 이미 안전하게 관리하고 있는 신원을 사용할 수 없습니다.

솔루션: 통합된, 네이티브, 의존성 없는 에이전트

프로젝트는 다음을 노출하는 단일 실행 파일을 제공합니다:

  • 전체 PKCS#11 모듈
  • SSH 에이전트
  • Pageant 서버
  • WSL2 TCP 브리지
  • CNG/KSP 암호화 백엔드

모든 암호화 작업은 Windows에 위임됩니다. 개인 키는 KSP를 떠나지 않으며, PIN 입력은 네이티브 Windows UI로 처리됩니다.

주요 특성

  • 네이티브 CNG/KSP 통합
  • RDP 및 다중 세션 환경에서 작동
  • 종속성 없음, CRT 없음, 외부 DLL 없음
  • 스마트카드, TPM, Windows Hello, ADCS 인증서 지원
  • RSA, ECDSA, Ed25519, Ed448, Brainpool 지원
  • 14가지 메커니즘을 갖춘 PKCS#11 지원
  • OpenSSH, Git for Windows, Visual Studio, PuTTY, WSL, WSL2와 호환
  • 강화된 환경을 위한 선택적 Windows 서비스 모드

오늘날 Windows에서 최고의 옵션인 이유

  • NCryptSignHash와 Windows 인증서 저장소를 사용한 전체 CNG/KSP 지원
  • 개인 키는 절대 내보내지거나 에이전트를 통해 전송되지 않으며, 항상 KSP 내부에 보관됩니다
  • PIN 처리는 전적으로 Windows에서 수행됩니다
  • RDP‑안전 및 다중 세션 안전: RDP, RemoteApp, Citrix, 다중 세션 및 비대화형 세션에서도 작동
  • 단일 바이너리: DLL 없음, 런타임 없음, 외부 라이브러리 없음, 레지스트리 오염 없음

완전한 PKCS#11 구현

호환되는 제품:

  • Firefox
  • pkcs11-tool
  • ssh -I
  • PKCS#11을 지원하는 모든 제품

RSA, ECDSA, EdDSA, Brainpool 및 PSS를 지원합니다.

전체 SSH 에이전트

지원 대상:

  • OpenSSH
  • Git for Windows
  • Visual Studio / VSCode Remote
  • WSL / WSL2 (TCP 127.0.0.1:10022를 통해)

Pageant 호환성

PuTTY, plink, pscp, 및 psftp 모두 작동합니다.

선택적 Windows 서비스 모드

강화된 또는 다중 사용자 환경을 위해:

  • 서비스가 세션 0에서 실행됨
  • 도우미가 사용자 세션에서 실행됨
  • PIN UI가 올바른 세션에 표시됨
  • 서비스와 암호 작업 간의 엄격한 격리

예시: SSH에 ADCS 인증서 사용

  1. Windows 인증서 저장소에 인증서를 설치합니다(내보낼 수 없는 키).

  2. 에이전트를 시작합니다.

  3. 공개 키를 내보냅니다:

    ssh-agent.exe -exportkey id.pub
  4. id.pub를 서버의 authorized_keys에 추가합니다.

  5. 연결합니다:

    ssh user@server

개인 키 파일도, 토큰도, 추가 설정도 필요하지 않습니다.

Where this agent is most useful

  • RDP / RemoteApp / Citrix environments
  • Windows jump hosts
  • PKI / ADCS administrators
  • DevOps using Windows + WSL2
  • Enterprises using smartcards (PIV/GIDS/YubiKey)
  • Enterprises using TPM or Windows Hello
  • Hardened workstations
  • Windows‑based CI pipelines

다운로드

0 조회
Back to Blog

관련 글

더 보기 »

일이 정신 건강 위험이 될 때

markdown !Ravi Mishrahttps://media2.dev.to/dynamic/image/width=50,height=50,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fu...