외부 주소에서만 2 단계 SSH 인증


11

개인, 내부, IP 및 공용 IP가 모두있는 Ubuntu 서버가 있습니다. 공개 측에서만 SSH에 대한 2 단계 인증을 설정하려고합니다. 이게 가능해? Google OTP를 사용할 계획이지만 다른 아이디어도 공개됩니다.


답변:


15

예,으로 할 수 있습니다 pam_access.so. 이 레시피는 Google OTP위키 에서 가져 왔습니다 .

유용한 PAM 레시피는 연결이 특정 소스에서 시작될 때 2 단계 인증을 건너 뛸 수 있도록하는 것입니다. 이것은 이미 PAM에서 지원합니다. 예를 들어, pam_access 모듈을 사용하여 로컬 서브넷과 비교하여 소스를 확인할 수 있습니다.

# skip one-time password if logging in from the local network
auth [success=1 default=ignore] pam_access.so accessfile=/etc/security/access-local.conf
auth       required     pam_google_authenticator.so

이 경우 access-local.conf는 다음과 같습니다.

# only allow from local IP range
+ : ALL : 10.0.0.0/24
+ : ALL : LOCAL
- : ALL : ALL

따라서 10.0.0.0/24의 로그인 시도에는 이중 인증이 필요하지 않습니다.


1
바로 내가 찾던 것입니다. 내가 왜 그것을 일찍 보지 못했는지 모르겠습니다. 감사!
Brett F.

4
Michael Hampton 예를 들어 주셔서 감사하지만 Permission denied (keyboard-interactive)라는 오류가 계속 발생하여 저에게 효과적이지 않았습니다. AuthenticationMethods publickey,keyboard-interactive에서 사용했기 때문에 알아 냈습니다 /etc/ssh/sshd_config. 그래서 수정하기 위해 다음을 변경했습니다.auth [success=done default=ignore] pam_access.so accessfile=/etc/security/access-local.conf auth optional pam_google_authenticator.so nullok
Jeremy Laird

@JeremyLaird 그 줄이 뭉개졌습니다 .. 개행은 어디에 있습니까?
shadowbq
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.