PKCS#11을 통한 OpenSSH CA 사용법

PKCS#11 프로토콜은 USB나 스마트 카드와 같은 하드웨어 토큰의 RSA 개인 키나 인증서 등을 사용할 수 있도록 하는 규약입니다.

Xshell은 PKCS#11을 지원하여 USB 하드웨어 토큰의 RSA 개인 키를 사용하여 공개 키 인증이 필요한 서버에 연결할 수 있습니다.

PKCS#11 사용을 위한 미들웨어 설치 및 Xshell에서의 설정에 관하여는 다음 글을 참고하시기 바랍니다.

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

 

또한 원격 서버가 OpenSSH CA를 지원할 경우 관리자는 좀 더 편리하게 사용자들의 키 관리를 할 수 있습니다. Xshell은 OpenSSH CA(Certificate Authentication)를 지원하여 이러한 서버에 CA 기능을 이용하여 접속할 수 있습니다.

OpenSSH CA에 대한 자세한 내용은 다음 글을 참고하시기 바랍니다.

Xshell에서 OpenSSH CA(Certificate Authority) 사용하기

 

다음은 하드웨어 토큰 내의 RSA 키에 대한 CA 공개 키를 Xshell에서 사용하는 방법에 대한 안내입니다.

(PKCS#11 + OpenSSH CA, Xshell 7 빌드 0093부터 지원 가능합니다)

PKCS#11을 통한 원격 서버에 접속하기 위한 준비

PKCS#11을 사용하는 YubiKey 등의 하드웨어 토큰을 통한 SSH 접속 의 내용을 진행하였다면 PKCS#11을 통해 원격 서버에 접속을 할 수 있는 상태입니다.

OpenSSH CA 설정

Xshell에서 OpenSSH CA(Certificate Authority) 사용하기 에서 ‘사용자 키 서명’ 부분을 참고하시어 PKCS#11의 RSA 키의 공개 키를 서명합니다. 이 과정은 CA 서버 관리자의 도움이 필요할 수도 있습니다.

Xshell의 설정

  1. Alt+N 키를 눌러 PKCS#11 CA를 위한 새 세션을 생성합니다.

  2. 세션의 이름을 정한 후 ‘사용자 인증’에서 PKCS11을 선택한 후 ‘설정’을 눌러 PKCS11 설정 대화 상자를 엽니다.

    (위 ‘PKCS#11을 통한 원격 서버에 접속하기 위한 준비’의 문서를 통해 미들웨어 드라이버를 설치하였다면 설치 경로에 pkcs11 관련 dll이 보일 것입니다.)

  3. PKCS11 설정 대화 상자의 토큰 핀을 저장할 수 있지만 토큰에 대한 접속이 제대로 이루어 지는지 확인하기 위해 비워 둡니다. 토큰 핀은 세션 실행 중에 입력할 수 있습니다.

  4. PKCS11 설정 대화 상자에서 ‘SSH CA 키 설정’ 버튼을 눌러 HW 토큰의 SSH CA 키 대화 상자를 엽니다.

     

  5. ‘추가’ 버튼을 누른 후 위 ‘OpenSSH CA 설정’에서 서명 후 가져온 서명된 공개 키를 선택합니다.

  6. ‘확인’을 연속으로 눌러 새 세션 대화 상자에서 접속에 필요한 정보를 입력 후 세션을 저장합니다.

  7. 생성한 세션을 실행합니다.

작동 확인

  • 하드웨어 토큰 핀 암호를 묻는 대화 상자가 나타나면 PKCS#11을 통한 하드웨어 토큰에 성공한 것입니다.

  • 원격 서버의 사용자의 authorized_keys에 공개 키를 등록하지 않았음에도 접속이 이루어진다면 CA 인증이 제대로 작동하는 것입니다.