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

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-toolssh -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 인증서 사용
-
Windows 인증서 저장소에 인증서를 설치합니다(내보낼 수 없는 키).
-
에이전트를 시작합니다.
-
공개 키를 내보냅니다:
ssh-agent.exe -exportkey id.pub -
id.pub를 서버의authorized_keys에 추가합니다. -
연결합니다:
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