스마트 카드 SSH 인증을 어떻게 설정합니까?

스마트 카드 SSH 인증을 어떻게 설정합니까?

인증 방법으로 Gemalto .NET 스마트 카드를 사용하여 내 컴퓨터에 SSH로 연결할 수 있기를 원합니다. Fedora 13(또는 일반 Red Hat 스타일) 시스템에서 이 작업을 어떻게 수행할 수 있습니까?

제가 생각하는 대략적인 단계는 다음과 같습니다.

  1. 스마트 카드에 대한 인증서 제공(및 이를 발급할 CA도 있습니까?)
  2. 스마트 카드에 인증서 가져 오기
  3. 스마트 카드 인증을 허용하도록 SSH 서버를 구성하고 특정 인증서/CA를 사용하도록 구성합니다.
  4. 스마트 카드를 지원하는 SSH 클라이언트(무료 Windows 기반 클라이언트의 경우 추가 포인트)

답변1

Gemalto 드라이버는 이제 오픈 소스라고 생각합니다. 그들은 그들의 웹 사이트에 소스 코드를 가지고 있습니다.

모듈 을 구성해야 합니다 pam(이 작업을 수행하는 방법은 모르겠지만 코드는 확실히 거기에 있습니다). pam구성에는 인증서 원칙을 로컬 사용자 ID에 매핑해야 한다고 생각됩니다 .

GDM 현재 스마트 카드를 지원한다고 생각하지만 어떻게 감지하는지 잘 모르겠습니다. 나중에 찾아보도록 하겠습니다(가장 쉬운 방법은 아마도 gdm소스 코드를 살짝 살펴보는 것입니다).

물론 이 모든 작업에는 설치가 pcscd필요 합니다. 또한 을(를) libpcsclite복사해야 합니다 .libgtop11dotnet.so/usr/lib

libgtop11dotnet.so를 컴파일하기 위한 소스 코드:https://github.com/AbigailBuccaneer/libgtop11dotnet

답변2

저는 케르베로스를 추천합니다. MIT는 krb5 클라이언트 및 서버를 생산합니다.

vwduder님, 스마트 카드 리더기와 FIPS-201 호환 카드 소스를 추천해 주실 수 있나요?

http://csrc.nist.gov/publications/fips/fips201-1/FIPS-201-1-chng1.pdf

내 서버에 사본이 있지만 현재로서는 이 스택트레이스에서 당신과 공유할 만큼 인기가 없습니다. 위의 내용은 우리 서버보다 안정성이 약간 낮기 때문에 아마도 해당 서버에서 얻을 수 있을 것입니다. ;)

[수정] 이제 나도 충분히 인기가 있다!

http://www.colliertech.org/state/FIPS-201-1-chng1.pdf

답변3

RSA 키를 사용할 때 1)과 2)는 간단합니다. 왜냐하면 3)에서 볼 수 있듯이 실제 인증서는 이 컨텍스트와 관련이 없기 때문입니다. cacert.org로 이동하거나 자체 서명된 인증서를 생성하면 모든 준비가 완료됩니다.

3)의 경우 공개 키를 추출하여 $HOME/.ssh/authorized_keys에 설치해야 합니다. 파일 소유권과 권한에 주의하세요! (.ssh의 경우 700, Authorized_keys의 경우 600) 호스트 전체 공개 키 인증은 권장되지 않지만 호기심이 많은 사람들을 위한 연습으로 남겨두었습니다.

4)에 대해서는 PuTTY SC(http://www.joebar.ch/puttysc/) 또는 -바람직하게는- PuTTY-CAC(http://www.risacher.org/putty-cac/) 이는 더 나은 공개 키 추출 알고리즘으로 PuTTY SC를 개선하고 PuTTY 개발 분기의 Kerberos-GSSAPI 지원도 포함합니다.

답변4

PuttySC를 이용하여 Linux 서버에서 스마트 카드를 사용하는 방법을 보여드리기 위해 영상을 제작했고,SecureCRT. 여기서 시청할 수 있습니다:스마트 카드로 SSH를 사용하는 방법

카드에 인증서를 제공하는 방법은 설명하지 않지만, 그렇게 하는 경우 카드 관리 시스템을 사용하여 카드의 관리자 키를 변경해야 한다는 점을 기억하세요. 이 부분은 걱정하지 않으셔도 되도록 회사에서 스마트 카드를 제공해 주시면 훨씬 수월해질 것입니다.

카드를 프로비저닝한 후에는 공개 키를 추출한 다음 ~/.sshd/authorized_key에 추가해야 합니다.

서버에 연결하려면 PuttySC 또는 SecureCRT와 같은 도구를 사용할 수 있습니다. 카드용 PSKC#11 라이브러리(스마트 카드 제조업체 또는 오픈 소스 버전)를 구해야 합니다. 라이브러리로 SSH 도구를 구성하면 이를 읽고 인증서를 찾을 수 있어야 합니다.

인증하면 도구에서 스마트 카드 PIN을 묻는 메시지를 표시합니다.

관련 정보