본문 바로가기

프로젝트/On-Premise

On-Premise: SSH에 Google OTP(Authenticator) 적용하기 (2)

1. 계기

 

SSH 연결에 Public Key만 적용하기엔 보안이 약하다고 생각했어요

그래서 매번 번호가 달라지는 Google OTP를 도입해보기로 하였습니다

 

2. Google OTP 설치

 

# 설치
apt-get install libpam-google-authenticator

# 실행
google-authenticator

 

 

SSH가 설치된 서버 PC에 Google Authenticator를 설치해주시고, 인증을 관리할 모바일 기기에도 앱을 설치해줍니다

 

이후 실행을 하게 되면 인증 코드가 시간에 따라 달라지게 할 것인지를 묻는데, y로 답해주고,

그러면 QR코드를 보여줘요 !

Google Authenticator에서 이를 등록하면 앞으로 SSH의 인증 코드를 앱에서 받을 수 있습니다

 

3. SSH에 Google OTP 추가

 

먼저  /etc/pam.d/sshd 파일을 수정해볼게요

 

가장 윗줄에 auth required pam_google_authenticator.so를 추가해줍니다

그리고 OTP외의 별도 인증을 사용하지 않을 것이기에 @include common-auth를 주석 처리 해줍니다

 

이번엔 전에 봤던 익숙한 파일이에요 ! 😀

 /etc/ssh/sshd_config 파일을 수정해봅시다

 

Google OTP를 설정할 때 필요한 요소들을 확인해보면

# 일회용 비밀번호를 요구하는 챌린지-응답 방식 활성화
ChallengeResponseAuthentication yes

# Google OTP 코드 입력 시 키보드 입력이 필요하므로 활성화
AuthenticationMethods keyboard-interactive

# Google OTP는 PAM 모듈을 통해 동작하므로 UsePAM 활성화
UsePAM yes

 

이와 같습니다

해당 내용들을 추가하고, SSH를 재실행해줄게요 !

 

짜잔 ! 이제 OTP 인증 코드도 추가적으로 물어보게 됩니다

이로써 Google Authentictor 앱의 코드를 입력하면 정상적으로 SSH에 접근할 수 있도록 되었습니다 🥰

 

다음번엔 Nginx를 통한 인증서 등록 및 리버스 프록시 설정에 대해 이야기해볼게요 !