Google 인증자를 사용하여 Ubuntu 사용자를 위해 Ubuntu에서 2 단계 인증을 설정하는 방법은 무엇입니까?


답변:


16

참고 : 사용자에 대해 2 단계 인증을 활성화하고 루트에 대해 동일하게 설정하지 않으면 루트로 직접 로그인 할 수 없습니다. 그러한 경우에 해결 방법은 우리가 설정 한 다른 sudo 사용자를 사용한 다음 sudo su -루트 사용자로 전환하는 것입니다.


아래 단계를 사용하여 설정하십시오.

  1. PAM 인증의 애드온으로 사용할 Google 인증자를 설치하려면 아래 제공된 패키지를 설치하십시오.

    sudo apt-get install libpam-google-authenticator
    
  2. 이제이 /etc/pam.d/sshd파일을 수정 하고 아래와 같이 Google OTP를 추가하십시오.

    *sudo vim /etc/pam.d/sshd
    

    이 파일 상단에 아래를 입력하십시오.

    auth required pam_google_authenticator.so
    
  3. 여기서 /etc/ssh/sshd_configssh가 Google OTP를 사용하도록 ssh가 2 단계 인증을 사용하도록 변경해야합니다.

    vim /etc/ssh/sshd_config
    

    이 파일 ChallengeResponseAuthentication에서 아래와 같이 보이도록 주석을 해제하고 /하거나 주석을 제거해야합니다 (짧게 yes : P로 설정).

    ChallengeResponseAuthentication yes
    

    추가 또는 GUI 2 단계 인증은이 단계를 건너 뛰고 4 단계로 이동 하십시오. GUI 로그인에 사용하려면 /etc/pam.d/common-auth다음을 편집하십시오 .

    sudo vim /etc/pam.d/common-auth
    

    이제 auth required pam_google_authenticator.so줄 위에 이것을 추가 auth [success=1 default=ignore] pam_unix.so nullok_secure하고 파일을 저장하십시오.

  4. 이제 설정하려는 계정으로 변경하십시오.
    ( 참고 : 루트 계정을 제외하고 시스템에서 최소 두 개의 슈퍼 사용자 계정을 만들고 적어도 하나는 루트 계정이 아닌 계정으로 구성하는 것이 좋습니다.)

    sudo su - testuser1
    
  5. 이제 아래 명령을 사용하여이를위한 2 단계 인증을 설정합니다 testuser1.

    google-authenticator
    
  6. 이 명령을 실행하면 아래 질문이 표시됩니다. (권장 답변은 예)

    인증 토큰을 시간 기반 (y / n)으로 설정 하시겠습니까?

  7. 그런 다음 QR 코드와 응급 스크래치 코드 및 기타 세부 정보가 표시됩니다. 주어진 이미지는 아래 그림과 같습니다.

    여기에 이미지 설명을 입력하십시오

  8. 이제 Android / Apple / Blackberry 전화를 사용 하여 각 마켓 플레이스 (예 : Google Play 스토어) 에서 Google OTP 응용 프로그램 을 다운로드하여 설치해야합니다 . 로그인 코드가 생성됩니다.

    아래는 응용 프로그램 안드로이드 폰에서 가져온 응용 프로그램 아이콘 및 응용 프로그램의 스크린 샷입니다.

    여기에 이미지 설명을 입력하십시오 여기에 이미지 설명을 입력하십시오

  9. 전화기에서 애플리케이션을 시작하고 QR 코드를 스캔하거나 시스템의 QR 코드 아래에 제공된 비밀 키 및 확인 코드 를 사용하십시오. 위의 첫 번째 스크린 샷에서도 볼 수 있습니다.

  10. 이 모든 작업이 완료되면 비상 스크래치 코드 를 메모 하고 안전한 장소에 저장 하는 것이 매우 중요 합니다. 코드는 어쨌든 잠긴 경우에 도움이 될 수있는 코드이기 때문입니다.

  11. 이 시점에서 화면 하단에서 아래 질문을하는 부분을 살펴 봐야합니다. (권장 답변은 예) :

    "/home/testuser1/.google_authenticator"파일을 업데이트 하시겠습니까 (y / n) y

  12. 다시 한 번 더 질문하고 아래 질문에 대한 권장 답변도 예입니다.

    동일한 인증 토큰을 여러 번 사용할 수 없도록 하시겠습니까? 이렇게하면 30 초마다 한 번만 로그인 할 수 있지만 중간자 공격 (y / n)을 알아 차 리거나 예방할 가능성이 높아집니다.

  13. 다음 질문은 다음과 같으며 권장 답변은 아니오입니다.

    기본적으로 토큰은 30 초 동안 유효하며 클라이언트와 서버 간의 시간 차이를 보상하기 위해 현재 시간 전후에 추가 토큰을 허용합니다. 시간 동기화에 문제가 있으면 창을 기본 크기 인 1:30 분에서 약 4 분으로 늘릴 수 있습니다. 그렇게 하시겠습니까 (y / n) n

  14. 마지막 질문은 다음과 같으며 권장 답변은 예입니다.

    로그인하는 컴퓨터가 무차별 로그인 시도에 대해 강화되지 않은 경우 인증 모듈에 대해 속도 제한을 활성화 할 수 있습니다. 기본적으로 공격자는 30 초마다 3 회 이상의 로그인 시도로 제한됩니다. 속도 제한 (y / n) y를 사용 하시겠습니까?

  15. 이제이 계정에서 exit를 전환하여 루트 계정으로 돌아갑니다.

    exit
    
  16. 이제 ssh 서비스를 다시 시작하십시오.

    service ssh restart
    

이제 설정 한 사용자에 대해 ssh 세션을 시작하면 먼저 모바일에서 입력 할 수있는 인증 코드를 요청한 다음 사용자 비밀번호를 묻습니다.

여기에 이미지 설명을 입력하십시오

이것이 2 단계 인증을 설정하는 데 필요한 전부입니다. 필요한 경우 답변을 자유롭게 개선하고 언어가 좋지 않은 것에 대해 실례합니다.


제거 할 때 sudo 명령을 실행할 때마다 문제가 발생합니다. sudo : PAM 인증 오류 : 모듈을 알 수 없음
bagustris

@bagustris "/etc/pam.d/common-auth"파일을 편집하고이 항목에서 "auth required pam_google_authenticator.so"를 제거해야합니다. 제거한 후.
Hrish

/etc/pam.d/common-auth를 편집하려면 sudo가 필요합니다. sudo가 더 이상 작동하지 않기 때문에 라이브 OS가 필요합니다 (또는 Mac OS로 이중 부팅하기 때문에 쓰기 가능한 권한이 설정된 OS X에서 편집 할 수 있습니다).
bagustris

1
@bagustris 복구 모드로 들어가서 할 수 있습니다.
Hrish

1
2 단계에서 auth optional대신에 사용 하는 경우 머신에 대한 액세스를 느슨하게하지 않는 것이 더 안전합니다 auth required. 그렇지 않으면 세션이 중단되고 프로세스가 완료 되지 않으면 더 이상 로그인 할 수 없습니다 .
Pascal
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.