키 기반 인증을 통해 SSH를 통해 루트만 로그인하도록 허용

키 기반 인증을 통해 SSH를 통해 루트만 로그인하도록 허용

일부 SSH 서버 구성에 대해 몇 가지 질문이 있습니다 /etc/ssh/sshd_config. 다음 동작을 원합니다.

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

첫 번째 포인트를 설정하면 PasswordAuthentication no만족스럽지만 두 번째 포인트는 만족스럽지 않습니다. PasswordAuthentication no루트 권한 만 설정하는 방법이 있나요 ?

답변1

PermitRootLogin명령을 사용하여 이를 수행할 수 있습니다. sshd_config맨페이지 에서 :

루트가 ssh(1)를 사용하여 로그인할 수 있는지 여부를 지정합니다. 매개변수는 "yes", "without-password", "forced-commands-only" 또는 "no"여야 합니다. 기본값은 "예"입니다.

이 옵션을 "without-password"로 설정하면 루트에 대한 비밀번호 인증이 비활성화됩니다.

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

PasswordAuthentication yes
PermitRootLogin prohibit-password

~에서OpenSSH 7.0 변경 로그

PermitRootLogin은 이제 "비밀번호 없음"에 대한 덜 명시적인 동의어로 "금지 비밀번호" 매개변수를 허용합니다.

그런 다음 SSH 서버를 다시 로드합니다.

systemctl reload sshd

평소와 마찬가지로 다른 터미널에서 모든 것이 정상이고 오류로 인해 잠긴 것이 아니라는 것을 확인할 때까지 활성 터미널을 닫지 마십시오.

답변2

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

PasswordAuthentication yes
PermitRootLogin yes

Match User root
PasswordAuthentication no

그런 다음 SSH 서버를 다시 로드합니다.

systemctl reload sshd

평소와 마찬가지로 다른 터미널에서 모든 것이 정상이고 오류로 인해 잠긴 것이 아니라는 것을 확인할 때까지 활성 터미널을 닫지 마십시오.

답변3

내 서버에 루트 권한을 부여하는 보다 제한적인 방법이 있는데, 이는 나와 같은 편집증적인 사람들에게 흥미로울 수 있습니다. 행동과 순서에 주의하십시오. 그렇지 않으면 루트 액세스 권한을 얻을 수 없는 시스템이 생길 수 있습니다.

  • sugroup다음 줄을 입력하여 구성원이 루트가 될 수 있는 특정 그룹을 만들고 해당 그룹에 대한 키 인증만 허용합니다.마지막에sshd_confid:

Match Group sugroup

PasswordAuthentication no

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

이 구성을 사용하려면 루트가 되기 위한 키 인증과 비밀번호가 필요합니다. 저는 인증 방법에 관계없이 SSH 없이 직접 루트 액세스를 선호하기 때문에 이런 방식으로 서버를 구성합니다.

관련 정보