PKCS#11을 사용하는 YubiKey 등의 하드웨어 토큰을 통한 SSH 접속

PKCS#11 드라이버(미들웨어) 및 관련 도구 설치

Xshell에서 PKCS#11 인증을 진행하기 위해서는 Windows용 Smart Card Minidriver가 필요합니다. OpenSC 미들웨어에서 제공하는 PKCS11 Minidriver를 사용하면 호환되는 RSA 키 인증을 받을 수 있습니다.

  1. 다음 경로에서 윈도우용 OpenSC 라이브러리를 다운로드 받습니다. (https://github.com/OpenSC/OpenSC/releases)

  2. 각 버전의 설명 하단에 나열된 다운로드 파일 중 32비트용 OpenSC 설치 파일을 다운로드 받습니다.

     

  3. 해당 설치 파일을 실행하여 설치를 진행합니다. 설치 도중 설치 유형을 묻는 창이 나타나면 Typical을 선택합니다.

     

  4. 설치가 완료되면 다음 경로에 해당 파일이 존재하는지 확인합니다.
    C:\Program Files (x86)\OpenSC Project\OpenSC\pkcs11\opensc-pkcs11.dll

SSH 서버에 하드웨어 토큰의 RSA 공개 키 등록

  1. 다음 명령들을 통해 하드웨어 토큰의 공개 키를 확인합니다:

    1. pkcs15-tool --list-public-keys

       

    2. pkcs15-tool.exe --read-ssh-key [RSA PIV AUTH pubkey ID]

       

  2. 해당 공개 키 문자열을 복사하여 SSH 서버의 AuthorizedKeysFile에 등록합니다. OpenSSH의 기본 AuthorizedKeysFile은 사용자 홈디렉토리의 ‘.ssh/authorized_keys’ 파일입니다.

    주의: .ssh 디렉토리 및 authorized_keys 파일의 접근 권한은 해당 사용자에게만 있어야 합니다.

PKCS#11 Session 세션 생성 및 접속

이제 Xshell에서 PKCS#11 인증을 위한 세션을 생성해 보겠습니다.

  1. Xshell을 실행하고 상단 메뉴의 ‘파일 - 새로 만들기(N)...’ 를 실행합니다

     

  2. 좌측 범주에서 ‘연결’ 을 선택한 후 세션 파일 이름호스트 주소를 입력합니다.

     

     

  3. 좌측 범주에서 ‘사용자 인증’을 클릭합니다. 사용자 인증 방법을 ‘PKCS11’로 지정한 후 사용자 이름을 입력합니다. 이후 우측의 ‘설정(S)...’을 클릭합니다.
    참고: 여기에 사용자 이름을 입력하지 않아도 인증 과정에서 입력할 수 있습니다.

     

  4. PKCS11 설정 대화 상자에서 미들웨어 경로와 하드웨어 토큰 핀 번호를 입력합니다.
    - 미들웨어 경로 : OpenSC 라이브러리 파일의 경로입니다. (C:\Program Files (x86)\OpenSC Project\OpenSC\pkcs11\opensc-pkcs11.dll)
    - 토큰 핀 : USB 토큰에 설정된 PIN을 입력합니다. 이 부분은 인증이 진행되는 도중에도 입력할 수 있습니다(Pin 번호의 확인 및 설정에 대해서는 해당 하드웨어 토큰 공급자의 소프트웨어나 사용자 매뉴얼을 참고하실 필요가 있습니다).

     

  5. 모든 설정이 완료되었습니다. 세션을 실행하여 문제 없이 접속 되는지 확인해 봅니다.