답변:
이를 수행하는 한 가지 방법은 Google에서 제공하는 Google OTP (Authorticator) 도구를 사용하는 것 입니다.
libpam-google-authenticator 설치
sudo apt-get install libpam-google-authenticator
/etc/pam.d/sshd
모듈을 포함하도록 편집하십시오 .
sudoedit /etc/pam.d/sshd
그런 다음 파일 맨 위에이 줄을 포함 시키고 저장하십시오.
auth required pam_google_authenticator.so
챌린지를 켜려면 SSH 구성 파일을 편집하십시오.
sudoedit /etc/ssh/sshd_config
응답 인증을 다음에서 변경하십시오.
ChallengeResponseAuthentication no
에
ChallengeResponseAuthentication yes
파일을 저장하십시오.
sudo restart ssh
SSH를 다시 시작하려면
운영 google-authenticator
다른 장치에서 인증 코드를 받으려면이 중 하나가 필요합니다.
암호를 일회용 암호와 결합하는 것은 2 단계 인증입니다. "알고있는 것"(암호)과 "알고있는 것"(암호 생성기)을 결합합니다. 반면에 일회용 패스 코드와 SSH 키 페어를 결합하면 "있는 것"에 관한 것입니다. 두 가지 인증 요소가 동일한 유형 인 경우 이중 인증이 없습니다. 이를“일 반 팩터 인증”이라고도합니다.
Google OTP는 개인 서버에는 적합하지만 기존 ID 인프라와 제대로 연결되지 않을 수 있습니다. 다른 옵션을 탐색하려면 RADIUS를 인증 프로토콜 및 pam-radius 플러그인으로 사용하십시오. 모든 엔터프라이즈 지향 2 단계 인증 시스템은 반경을 지원합니다. pam-radius를 통해 WiKID 2 단계 인증을 Ubuntu 에 추가하는 방법에 대한 문서를 작성했습니다 .
반경을 사용하면 SSH 이외의 다른 시스템에서 동일한 인증 서버에 연결할 수 있습니다. 인증 요청을 freeradius를 통해 LDAP로 라우팅 한 다음 2FA 서버로 라우팅하여 인증과 인증을 분리 할 수도 있습니다. AD btw에서도 동일한 작업을 수행 할 수 있습니다.
나는 모두 앞에서 위에서 설명한 것처럼 (현재 수정 된) 맨 아래 에 아래 줄을 두지 말 것을 촉구합니다 /etc/pam.d/sshd
.
auth required pam_google_authenticator.so
그렇지 않으면 시스템은 암호에 대한 무차별 대입 공격 을 위해 개방 상태를 유지 하여 2 단계 인증의 첫 번째 부분 인 암호를 손상시킵니다.
먼저 인증 코드를 입력 한 다음 암호가 올바른지 여부에 관계없이 비밀번호를 묻는 메시지가 표시됩니다. 둘 중 하나라도 틀리면 다시 입력해야합니다. 다른 방법으로 구성 할 수 있지만 현재 기본 우분투 (15.04) sshd 구성에서 설명하기가 약간 더 어렵습니다.
필요한 이유에 대한 자세한 내용은이 문제를 확인하십시오.