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의 설정
Alt+N 키를 눌러 PKCS#11 CA를 위한 새 세션을 생성합니다.
세션의 이름을 정한 후 ‘사용자 인증’에서 PKCS11을 선택한 후 ‘설정’을 눌러 PKCS11 설정 대화 상자를 엽니다.
(위 ‘PKCS#11을 통한 원격 서버에 접속하기 위한 준비’의 문서를 통해 미들웨어 드라이버를 설치하였다면 설치 경로에 pkcs11 관련 dll이 보일 것입니다.)
PKCS11 설정 대화 상자의 토큰 핀을 저장할 수 있지만 토큰에 대한 접속이 제대로 이루어 지는지 확인하기 위해 비워 둡니다. 토큰 핀은 세션 실행 중에 입력할 수 있습니다.
PKCS11 설정 대화 상자에서 ‘SSH CA 키 설정’ 버튼을 눌러 HW 토큰의 SSH CA 키 대화 상자를 엽니다.
‘추가’ 버튼을 누른 후 위 ‘OpenSSH CA 설정’에서 서명 후 가져온 서명된 공개 키를 선택합니다.
‘확인’을 연속으로 눌러 새 세션 대화 상자에서 접속에 필요한 정보를 입력 후 세션을 저장합니다.
생성한 세션을 실행합니다.
작동 확인
하드웨어 토큰 핀 암호를 묻는 대화 상자가 나타나면 PKCS#11을 통한 하드웨어 토큰에 성공한 것입니다.
원격 서버의 사용자의 authorized_keys에 공개 키를 등록하지 않았음에도 접속이 이루어진다면 CA 인증이 제대로 작동하는 것입니다.