SSH의 두 번째 요소에 TOTP 또는 Yubico OTP 사용

집 서버에 TOTP로 로그인할 수 있도록 허용 (과)과, 당연히 다음은 Yubico OTP를 이용해, YubiKey를 포치와 접하는 것만으로 로그인할 수 있도록(듯이) 하고 싶습니다. git push 매번 6자리 숫자를 확인하는 것은 좀 힘들다. TOTP 전에 Yubico OTP를 사용하도록 설정해 보았습니다.

Ubuntu 18.04 LTS의 server 버전에서의 작업 기록입니다. 작업하기 전에 sshd는 공개 키 인증 외에도 외부 연결에서 TOTP를 요청했습니다. 외부에서는 가정용 라우터의 포트 포워딩으로 연결됩니다.

YubiKey 준비



YubiKeyYubico사 의 하드웨어 인증 디바이스로, 다양한 인증 프로토콜을 대응하고 있습니다. 이번에는 Yubico OTP를 이용합니다. 이 기사에서는 2020년 7월에 구입한 YubiKey 5 NFC을 사용합니다. 이 많은 모델에서 Yubico OTP를 사용할 수 있지만 Yubico OTP를 사용할 수없는 모델도 있으므로 구입시 확인하십시오.



로그인처에 ~/.yubico/authorized_yubikeys 파일을 아래와 같은 내용으로 작성합니다. YubiKey를 USB 포트에 삽입하고 탭하면 기본적으로 cccc로 시작하는 Yubico OTP가 입력됩니다. 처음 12자로 YubiKey를 식별하는 것 같습니다. 복수의 YubiKey를 이용하는 경우에는 같은 줄에 : (콜론)로 단락지어 12문자를 추기합니다.
<ログイン先ユーザーID>:<YubiKeyをタップした時に入力される文字列の最初の12文字>

sshd 설정



Yubico API Key 획득



이메일 주소와 YubiKey를 Yubico에 등록하여 클라이언트 ID와 비밀 키를 받습니다. 이번에 사용하는 것은 클라이언트 ID뿐입니다.

htps : //에서 ゔぇぺぺrs. 유비코. 코 m/유비코 파 m/ 에서 필요한 사항을 기입하여 이용약관에 동의합니다.

Yubico PAM 설치



Yubico Cloud가 YubiKey를 확인하도록 하려면 유비코 PAM 모듈에 따라 PAM을 설치합니다.
sudo add-apt-repository ppa:yubico/stable
sudo apt update
sudo apt install libpam-yubico

수중에서는 libpam-yubico 이외에 libykclient3 , libykpers-1-1 , libyubikey0 가 인스톨 되었습니다.

PAM 설정


/etc/pam.d/sshd 를 편집하고 sshd
  • 첫째, Yubico OTP로 인증을 시도하십시오
  • 그런 다음 TOTP에서 인증을 시도하십시오

  • 와 같이 common-auth 의 행을 코멘트 아웃 해 무효로 해, 바로 아래의 행을 아래와 같이 편집합니다. 편집 후 sshd를 다시 시작할 필요가 없습니다.
    #@include common-auth
    auth       sufficient   pam_yubico.so id=<上記で取得したクライアントID>
    auth       sufficient   pam_google_authenticator.so
    
    /etc/ssh/sshd_config 의 내용은 TOTP만을 유효하게 하고 있었을 때와 같이, sshd 가 공개키에 가세해 PAM 경유로의 인증을 요구하도록(듯이), 및 로컬인 네트워크 (여기에서는 192.168.0.0/16 ) 혹은 cron으로 이용 하는 계정(여기에서는 automationbackup )에의 접속에서는 공개키로의 인증으로 충분하게 해 둡니다. 이 파일을 편집한 경우 sshd를 다시 시작해야 합니다.
    ChallengeResponseAuthentication yes
    AuthenticationMethods publickey,keyboard-interactive
    Match Address 192.168.0.0/16,::1
           AuthenticationMethods publickey
    Match User automation,backup
           AuthenticationMethods publickey
    Match all
    

    로그인 시도



    이 상태에서 ssh하면 SSH 키 쌍으로 인증이 성공한 후 Yubikey를 탭하라는 메시지가 표시됩니다.
    Authenticated with partial success.
    YubiKey for `<ログイン先ユーザーID>':
    

    손에 YubiKey가 없으면 Enter를 누르면 TOTP를 입력 할 수 있습니다.
    Verification vode:
    

    좋은 웹페이지 즐겨찾기