SSH 데몬에게 "원격 장치가 SSH를 통해 연결을 시도할 때 authenticate_keys를 확인하세요. 그러나 키가 제공되지 않으면 사용자가 ssh-copy-id를 사용하여 다음 작업을 수행할 수 있도록 일회용 비밀번호를 수락하세요"라고 지시하는 방법이 있나요? 후속 시도를 위해 "제공"하시겠습니까?
문맥: 사용자가 서버에 SSH로 접속할 수 있도록 Linux 서버를 설정하고 싶지만 인증에는 RSA 키 쌍을 사용하고 싶습니다. 또한 연결하고 싶은 장치가 여러 개 있으므로 이는 여러 키 쌍을 제공하는 것을 의미합니다(문제 아님).
기본적으로 OTP 및 ssh-copy-id를 사용하여 현재 액세스가 거부된 장치(아직 공개 키가 없기 때문에)에서 Authorized_keys에 항목을 추가하고 싶습니다. 현재 한 컴퓨터에서 SSH를 통해 로그인해야 합니다.할 수 있는연결하고 sshd_config 파일을 편집하여 비밀번호를 허용한 다음 정적 비밀번호로 ID를 복사하고 비밀번호 인증을 끄고 데몬을 다시 시작하세요. 시스템에서 OTP를 가져온 다음 이를 사용하고 계속 작업하는 방법을 선호합니다...
답변1
공개 키 인증은 기본적으로 켜져 있으며 비밀번호 인증보다 우선순위가 높습니다(PAM에서 또는 직접 처리).
sshd_config
UsePAM yes
인증을 PAM으로 연기하는 옵션(Red Hat의 기본값)에서 이를 설정할 수 있습니다. 이는 /etc/pam.d/sshd
구성되어 있습니다(일부 시스템에서는 약간 다를 수 있음).
OTP의 경우 google_authenticator
일회용 비밀번호를 사용하거나 다른 개방형 구현을 사용할 수 있습니다. 이를 수행하는 방법에는 여러 가지가 있습니다. 이중 인증을 검색해 볼 수 있지만 기본적으로 다음과 같은 줄을 추가하는 것입니다.
auth required pam_google_authenticator.so
그리고 /etc/pam.d/sshd
몇 가지 구성을 수행하십시오. Arch에는 이에 대한 훌륭한 지침이 있습니다.https://wiki.archlinux.org/index.php/Google_Authenticator
두 번째 요소 없이 일회용 비밀번호만 사용하는 것은 일회용 비밀번호나 토큰을 분실한 경우 잠재적으로 위험할 수 있습니다. 이 방법을 사용하지 말고 대신 1단계 인증을 사용하는 대신 2단계 인증을 구현하는 것이 좋습니다. 시간 비밀번호 비밀번호.