PKCS#11을 사용하는 YubiKey 등의 하드웨어 토큰을 통한 SSH 접속
PKCS#11 드라이버(미들웨어) 및 관련 도구 설치
Xshell에서 PKCS#11 인증을 진행하기 위해서는 Windows용 Smart Card Minidriver가 필요합니다. OpenSC 미들웨어에서 제공하는 PKCS11 Minidriver를 사용하면 호환되는 RSA 키 인증을 받을 수 있습니다.
다음 경로에서 윈도우용 OpenSC 라이브러리를 다운로드 받습니다. (https://github.com/OpenSC/OpenSC/releases)
각 버전의 설명 하단에 나열된 다운로드 파일 중 32비트용 OpenSC 설치 파일을 다운로드 받습니다.
해당 설치 파일을 실행하여 설치를 진행합니다. 설치 도중 설치 유형을 묻는 창이 나타나면 Typical을 선택합니다.
설치가 완료되면 다음 경로에 해당 파일이 존재하는지 확인합니다.
C:\Program Files (x86)\OpenSC Project\OpenSC\pkcs11\opensc-pkcs11.dll
SSH 서버에 하드웨어 토큰의 RSA 공개 키 등록
다음 명령들을 통해 하드웨어 토큰의 공개 키를 확인합니다:
pkcs15-tool --list-public-keys
pkcs15-tool.exe --read-ssh-key [RSA PIV AUTH pubkey ID]
해당 공개 키 문자열을 복사하여 SSH 서버의 AuthorizedKeysFile에 등록합니다. OpenSSH의 기본 AuthorizedKeysFile은 사용자 홈디렉토리의 ‘.ssh/authorized_keys’ 파일입니다.
주의: .ssh 디렉토리 및 authorized_keys 파일의 접근 권한은 해당 사용자에게만 있어야 합니다.
PKCS#11 Session 세션 생성 및 접속
이제 Xshell에서 PKCS#11 인증을 위한 세션을 생성해 보겠습니다.
Xshell을 실행하고 상단 메뉴의 ‘파일 - 새로 만들기(N)...’ 를 실행합니다
좌측 범주에서 ‘연결’ 을 선택한 후 세션 파일 이름과 호스트 주소를 입력합니다.
좌측 범주에서 ‘사용자 인증’을 클릭합니다. 사용자 인증 방법을 ‘PKCS11’로 지정한 후 사용자 이름을 입력합니다. 이후 우측의 ‘설정(S)...’을 클릭합니다.
참고: 여기에 사용자 이름을 입력하지 않아도 인증 과정에서 입력할 수 있습니다.PKCS11 설정 대화 상자에서 미들웨어 경로와 하드웨어 토큰 핀 번호를 입력합니다.
- 미들웨어 경로 : OpenSC 라이브러리 파일의 경로입니다. (C:\Program Files (x86)\OpenSC Project\OpenSC\pkcs11\opensc-pkcs11.dll)
- 토큰 핀 : USB 토큰에 설정된 PIN을 입력합니다. 이 부분은 인증이 진행되는 도중에도 입력할 수 있습니다(Pin 번호의 확인 및 설정에 대해서는 해당 하드웨어 토큰 공급자의 소프트웨어나 사용자 매뉴얼을 참고하실 필요가 있습니다).모든 설정이 완료되었습니다. 세션을 실행하여 문제 없이 접속 되는지 확인해 봅니다.