답변:
PermitRootLogin
지시문을 사용하여이 작업을 수행 할 수 있습니다 . 로부터 sshd_config
맨 :
ssh (1)를 사용하여 root가 로그인 할 수 있는지 여부를 지정합니다. 인수는 "예", "암호없이", "강제 명령 만"또는 "아니오"여야합니다. 기본값은“예”입니다.
이 옵션을 "암호없이"로 설정하면 루트에 대한 비밀번호 인증이 비활성화됩니다.
다음은 원하는 것을 달성합니다.
PasswordAuthentication yes
PermitRootLogin without-password
ssh -o PreferredAuthentications=password root@host
특히 안전한 imho
Match
블록을 사용 하여 사용자 또는 그룹 인증 또는 연결 원본의 IP 주소 또는 호스트 이름별로 일부 옵션을 구성 할 수 있습니다 .
PasswordAuthentication yes
PermitRootLogin yes
Match User root
PasswordAuthentication no
내 서버에 루트 권한을 부여하는 훨씬 더 제한적인 접근 방식이 있는데, 나 같은 편집증 환자에게는 흥미로울 수 있습니다. 자신이하는 일과 순서에주의하십시오. 그렇지 않으면 루트 액세스 권한이없는 시스템이 생길 수 있습니다.
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를 통한 직접 루트 액세스를 선호하지 않기 때문에 서버를 이와 같이 구성했습니다.
service ssh restart
하고 서버에서 확인한 다음 클라이언트에서 내 키없이 연결을 시도했지만ssh -o PreferredAuthentications=password -o PubkeyAuthentication=no root@host
실제로 암호로 로그인 할 수 없지만 루트 사용자의 키로 로그인 할 수있었습니다.