키 기반 인증으로 만 SSH를 통한 루트 로그인 허용

의 특정 ssh 서버 구성에 대한 의구심이 있습니다 /etc/ssh/sshd_config. 다음 행동을 원합니다.

  1. 공개 키 인증은 루트로 인증 할 수있는 유일한 방법입니다 (비밀번호 인증 또는 기타 없음)
  2. 일반 사용자는 비밀번호와 공개 키 인증을 모두 사용할 수 있습니다

PasswordAuthentication no첫 번째 포인트를 설정 하면 두 번째 포인트는 만족되지 않습니다. PasswordAuthentication no루트에만 설정하는 방법이 있습니까?



답변

PermitRootLogin지시문을 사용하여이 작업을 수행 할 수 있습니다 . 로부터 sshd_config맨 :

ssh (1)를 사용하여 root가 로그인 할 수 있는지 여부를 지정합니다. 인수는 “예”, “암호없이”, “강제 명령 만”또는 “아니오”여야합니다. 기본값은“예”입니다.

이 옵션을 “암호없이”로 설정하면 루트에 대한 비밀번호 인증이 비활성화됩니다.

다음은 원하는 것을 달성합니다.

PasswordAuthentication yes
PermitRootLogin without-password


답변

Match블록을 사용 하여 사용자 또는 그룹 인증 또는 연결 원본의 IP 주소 또는 호스트 이름별로 일부 옵션을 구성 할 수 있습니다 .

PasswordAuthentication yes
PermitRootLogin yes

Match User root
PasswordAuthentication no


답변

내 서버에 루트 권한을 부여하는 훨씬 더 제한적인 접근 방식이 있는데, 나 같은 편집증 환자에게는 흥미로울 수 있습니다. 자신이하는 일과 순서에주의하십시오. 그렇지 않으면 루트 액세스 권한이없는 시스템이 생길 수 있습니다.

  • sshd_confid 끝에sugroup 다음 줄 넣어 특정 그룹을 만듭니다. whos 구성원은 루트가되고이 그룹에 대한 키 인증 만 허용합니다 .

Match Group sugroup

PasswordAuthentication no

  • 에 명령 auth required pam_wheel.so group=sugroup을 넣 습니다 /etc/pam.d/su. 이미있을 수 있으며 주석 처리를 제거해야합니다. 이렇게하면 sugroup의 구성원이 아닌 모든 사용자에 대한 루트 액세스가 거부됩니다.
  • 강력한 루트 비밀번호를 선택하십시오. 🙂
  • 다음과 같은 경우에만 새 인증 방법이 작동하는지 확인하십시오.
  • PermitRootLogin noin 을 사용하여 ssh를 통한 직접 루트 로그인을 거부하십시오 /etc/ssh/sshd_config.

이 구성을 사용하려면 루트가 되려면 키 인증과 비밀번호를 사용해야합니다. 인증 방법에 관계없이 ssh를 통한 직접 루트 액세스를 선호하지 않기 때문에 서버를 이와 같이 구성했습니다.


답변


답글 남기기