~/.ssh로그인 에 있는 키 파일을 사용하도록 ssh를 구성했습니다 . 이제 암호를 사용할 때 2단계 인증을 설치하고 싶지만 키 파일을 사용할 때는 필요하지 않습니다. 여기에서 2단계 인증을 설치하는 방법을 보았습니다. DigitalOcean: 2단계 인증으로 SSH를 보호하는 방법 .

그러나 키 로그인과 비밀번호 로그인 모두에 적용되며 비밀번호 로그인에만 사용하고 싶습니다.

내가 좋아하는 것:

  • 공개 키 -> 서버에 들어가도 됩니다.

또는

  • 비밀번호 -> 일회용 비밀번호 -> 서버 진입 확인

아마도 AuthenticationMethodsin으로 뭔가를 할 수 sshd_config있습니까? 나는 이것을 찾았습니다 : OpenSSH 사용 (공개 키 또는 비밀번호) + Google 인증

answer

이것이 기본적으로 작동하는 방식입니다.

기본적으로 auth키 기반 인증이 사용 중일 때 sshd는 PAM 스택을 참조하지 않습니다. 다른 스택은 여전히 account실행되지만 (즉, 여전히 액세스 정책을 적용함) AuthenticationMethodsPAM 및 비PAM 인증 방법이 혼합된 상황에서도 끝내기 위해서는 추가 구성(사용자 지정 )이 필요합니다 .

AuthenticationMethods는 다중 선택을 허용합니다. AND 연산은 쉼표를 사용하고 OR 연산은 공백을 사용합니다. 따라서 위에 있는 링크의 예는 다음과 같습니다.

AuthenticationMethods publickey,keyboard-interactive:pam password,keyboard-interactive:pam

이것은 키와 챌린지 응답 또는 암호와 챌린지 응답을 허용한다고 말합니다. 이것은 당신이 요청한 것을 할 것입니다.

https://blog.tinned-software.net/restrict-ssh-logins-using-ssh-keys-to-a-particular-ip-address에Match 표시된 대로 블록을 사용하여 알려진 호스트로 키 인증을 제한하는 것이 좋습니다. /