원격 로그인 인증을 위해 암호 생성기를 어떻게 사용합니까?


55

암호 생성기 장치 또는 휴대 전화의 암호 생성 응용 프로그램을 추가하여 SSH 로그인 인증을 강화하고 싶습니다. 기본 설정에서 유일하게 확실한 옵션은 고정 암호 및 키 쌍입니다. 어떻게해야합니까?

(비밀번호와 비밀번호 생성기를 사용하는 경우 2 단계 인증 (2FA)을 제공합니다. 비밀번호는 "내가 아는 것"이고 비밀번호는 "내가 가진 것"입니다.

답변:


49

이를 수행하는 한 가지 방법은 Google에서 제공하는 Google OTP (Authorticator) 도구를 사용하는 것 입니다.

  1. libpam-google-authenticator 설치 libpam-google-authenticator 설치

    • 아니면 그냥 sudo apt-get install libpam-google-authenticator
  2. /etc/pam.d/sshd모듈을 포함하도록 편집하십시오 .

    • sudoedit /etc/pam.d/sshd
    • 그런 다음 파일 맨 위에이 줄을 포함 시키고 저장하십시오.

      auth required pam_google_authenticator.so
      
  3. 챌린지를 켜려면 SSH 구성 파일을 편집하십시오.

    • sudoedit /etc/ssh/sshd_config 응답 인증을 다음에서 변경하십시오.

      ChallengeResponseAuthentication no 
      

      ChallengeResponseAuthentication yes
      

      파일을 저장하십시오.

  4. sudo restart ssh SSH를 다시 ​​시작하려면

  5. 운영 google-authenticator

    • 비밀 키, 인증 코드 및 응급 스크래치 코드가 제공됩니다. 또한 속도 제한에 관한 질문도합니다.

모바일 애플리케이션 :

다른 장치에서 인증 코드를 받으려면이 중 하나가 필요합니다.

관련 및 유용한 :

암호를 일회용 암호와 결합하는 것은 2 단계 인증입니다. "알고있는 것"(암호)과 "알고있는 것"(암호 생성기)을 결합합니다. 반면에 일회용 패스 코드와 SSH 키 페어를 결합하면 "있는 것"에 관한 것입니다. 두 가지 인증 요소가 동일한 유형 인 경우 이중 인증이 없습니다. 이를“일 반 팩터 인증”이라고도합니다.


12

Google OTP는 개인 서버에는 적합하지만 기존 ID 인프라와 제대로 연결되지 않을 수 있습니다. 다른 옵션을 탐색하려면 RADIUS를 인증 프로토콜 및 pam-radius 플러그인으로 사용하십시오. 모든 엔터프라이즈 지향 2 단계 인증 시스템은 반경을 지원합니다. pam-radius를 통해 WiKID 2 단계 인증을 Ubuntu 에 추가하는 방법에 대한 문서를 작성했습니다 .

반경을 사용하면 SSH 이외의 다른 시스템에서 동일한 인증 서버에 연결할 수 있습니다. 인증 요청을 freeradius를 통해 LDAP로 라우팅 한 다음 2FA 서버로 라우팅하여 인증과 인증을 분리 할 수도 있습니다. AD btw에서도 동일한 작업을 수행 할 수 있습니다.


1

나는 모두 앞에서 위에서 설명한 것처럼 (현재 수정 된) 맨 아래 에 아래 줄을 두지 말 것을 촉구합니다 /etc/pam.d/sshd.

auth required pam_google_authenticator.so

그렇지 않으면 시스템은 암호에 대한 무차별 대입 공격 을 위해 개방 상태를 유지 하여 2 단계 인증의 첫 번째 부분 인 암호를 손상시킵니다.

먼저 인증 코드를 입력 한 다음 암호가 올바른지 여부에 관계없이 비밀번호를 묻는 메시지가 표시됩니다. 둘 중 하나라도 틀리면 다시 입력해야합니다. 다른 방법으로 구성 할 수 있지만 현재 기본 우분투 (15.04) sshd 구성에서 설명하기가 약간 더 어렵습니다.

필요한 이유에 대한 자세한 내용은이 문제를 확인하십시오.

https://github.com/google/google-authenticator/issues/514

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.