의 특정 ssh 서버 구성에 대한 의구심이 있습니다 /etc/ssh/sshd_config
. 다음 행동을 원합니다.
- 공개 키 인증은 루트로 인증 할 수있는 유일한 방법입니다 (비밀번호 인증 또는 기타 없음)
- 일반 사용자는 비밀번호와 공개 키 인증을 모두 사용할 수 있습니다
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 no
in 을 사용하여 ssh를 통한 직접 루트 로그인을 거부하십시오/etc/ssh/sshd_config
.
이 구성을 사용하려면 루트가 되려면 키 인증과 비밀번호를 사용해야합니다. 인증 방법에 관계없이 ssh를 통한 직접 루트 액세스를 선호하지 않기 때문에 서버를 이와 같이 구성했습니다.