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를 통한 인증서 등록 및 리버스 프록시 설정에 대해 이야기해볼게요 !
'프로젝트 > On-Premise' 카테고리의 다른 글
On-Premise: Jenkins 설치 및 Nginx 라우팅 (4) (2) | 2025.01.07 |
---|---|
On-Premise: 도메인 설정 및 Nginx를 통한 리버스 프록시 구축 (3) (1) | 2025.01.06 |
On-Premise: 보조 PC 서버 컴퓨터로 만들기 (1) (0) | 2024.10.04 |