안드로이드 및 구글 계정에 보시면 2단계인증이라는게 있습니다.
게임 인증처럼 구글계정에 로그인 할때 안드로이드의 google OTP 인증번호를 이용하여 일회용 암호를 한번더 입력하는 방법 입니다.
중국의 ssh 무한대입 공격을 막을 수 있는 방법중의 하나로 이러한 google OTP를 ssh 접속에 이용 할 수 있습니다.
일단 libpam-google-authentic 패키지를 설치합니다. synaptic 이나 아래와 같이 루트권한 터미널에서
으로 패키지를 설치합니다.
그리고 루트권한으로 gedit 이나 vim nano 같은 텍스트 편집기로 /etc/pam.d/sshd을 수정합니다.
@include common-auth
이 부분위에
auth required pam_google_authenticator.so
이부분을 삽입합니다.
두번째로 루트권한 편집기에서 /etc/ssh/sshd_config 를 수정합니다.
PasswordAuthentication이 입력된부분을 찾으셔서 (없으면 추가합니다.)
으로 바꿉니다(즉 yes 를 no로)
위와 같은 방법으로 ChallengeResponseAuthentication 부분의 no를 yes로 수정합니다.
마지막으로 UsePAM 부분을 yes로 수정합니다.
끝으로 루트권한으로
을 실행하여 ssh 서버에 설정을 반영합니다.
이제 터미널 권한을 실제 ssh로 로그인할 계정으로 바꿈니다.
이 상태에서
를 실행하면 다음과 같은 화면이 나옵니다.
몇가지를 물어보는데 모두 y하시면됩니다(보안상 otp를 공유하지않을것인지 제한시간을 축소할 것 인지..)
이제 핸드폰을 듭니다.
구글 마켓에서 google OTP를 설치합니다.
google OTP를 실행 하시고 메뉴키를 눌러 계정설정을 들어가시면 아래와 같이 두가지 선택지가 존재합니다.
바코드 스캔을 눌러 위의 google-authenticator를 실행결과에서 qr코드를 입력하거나
제공된 키메뉴에서 secret key를 입력합니다.
그후 60초마다 아래와 같이 6자리숫자의 OTP가 생성됩니다.
반드시 서버의 시간이 올바른시간이어야 OTP가 일치하게됩니다.
putty로 접속을 해보겠습니다.
보통접속과정과 동일하게 해주시면 되는데 하나 설정해주어야 할것이 있습니다(putty만 이런 옵션이있군요)
화면에서
를 선택하여야 ssh 접속이 됩니다.
이제 접속하시면 ID 입력후
입력창이 뜨게되는이 이 시점에서 핸드폰에 뜬 인증코드를 입력뒤 암호를 입력하시면됩니다.
ps. 그림크기 조정방법을 몰라서 그냥 올렸더니 조금 산만할 한거같네요..
출처 : http://www.ubuntu.or.kr/
댓글