일부 사용자의 비밀번호로 SSH 로그인을 비활성화하는 방법은 무엇입니까?


165

Linux (Debian Squeeze)에서 일부 사용자 (선택한 그룹 또는 루트를 제외한 모든 사용자)에게 비밀번호를 사용하여 SSH 로그인을 비활성화하고 싶습니다. 그러나 인증서를 사용하여 로그인을 비활성화하고 싶지 않습니다.

편집 : 자세한 답변을 주셔서 감사합니다! 어떤 이유로 이것은 내 서버에서 작동하지 않습니다.

Match User !root
PasswordAuthentication no

...하지만 쉽게 교체 할 수 있습니다

PasswordAuthentication no
Match User root
PasswordAuthentication yes

아마도 당신의 들여 쓰기 때문일까요?
nil

7
일치하는 해당 줄은 파일의 끝에 있어야합니다.
zidarsk8

1
! root도 작동하지 않습니다. 두 번째 접근 방식은 트릭을 수행했습니다.
natenho 2016 년

나는 일을 한 경우를 보았습니다 Match User "!root,*".
Roman Hocke

답변:


179

시도 Matchsshd_config:

Match User user1,user2,user3,user4
    PasswordAuthentication no

또는 그룹별로 :

Match Group users
    PasswordAuthentication no

또는 의견에서 언급했듯이 부정에 의해 :

Match User !root
    PasswordAuthentication no

일치는 "다른 일치 줄이나 파일 끝까지" 유효 합니다. (들여 쓰기는 중요하지 않습니다)


4
Match user !root이 경우에 선호
84104

1
놀랍게도 Match 구문에 대해 몰랐습니다. 그러나 한 가지 제안은 이것이 공개 서버라면 SSH를 통한 루트 로그인을 전혀 허용하지 않는다는 것입니다. 내부적이라면 아마도 큰 문제는 아닙니다 ..
Safado

4
@SpacemanSpiff a) 강력한 암호와 b) denyhosts / fail2ban의 목적입니다.
ceejayoz

2
@ deed02392 원하는 경우 키를 실제로 강력한 암호로 간주 할 수 있습니다.
ceejayoz

4
같은 구장에 있지 않은 것이 훨씬 더 강력합니다. root의 경우에도 비밀번호 인증을 비활성화하고 키는 로그인에만 허용해야합니다.
deed02392

21

Match에서 sshd_config잘 작동합니다. Match allopenssh 6.5p1 이상을 사용하는 경우 매치 블록을 종료하는 데 사용해야 합니다. 예:

PasswordAuthentication no
Match User root
PasswordAuthentication yes
Match all

그것은 나를 위해 작동하지 않았다 ...
Dimitrios

3

몇 가지 방법이 있습니다. 먼저 다른 구성으로 다른 포트에서 두 번째 sshd 데몬을 확실하게 실행할 수 있습니다.

또한 비밀번호 인증을 허용 할 수 있지만 한 명의 사용자를 제외한 모든 사용자의 비밀번호를 잠급니다. 암호가 잠겨있는 사용자는 여전히 공개 키로 인증 할 수 있습니다.


-1

/ etc / ssh / sshd_config 파일로 이동하여 다음 줄을 추가 할 수 있습니다. 허용-> Allowusers user1 거부 ---> DenyUsers user2

/ etc 폴더에있는 hosts.allow 또는 hosts.deny 파일을 사용하여 특정 호스트 집합에 대한 로그인을 허용 / 거부 할 수 있습니다


-1

일부 보안상의 이유로 Linux 상자에 대한 특정 사용자 SSH 액세스를 차단해야 할 수도 있습니다.

sshd_config 파일을 편집하면 Linux 배포판에 따라 위치가 다를 수 있지만 일반적으로 / etc / ssh /에 있습니다.

루트로 로그온 한 상태에서 파일을 엽니 다.

# vi /etc/ssh/sshd_config

구성 파일 끝에 줄을 삽입하십시오.

DenyUsers username1 username2 username3 username4

저장하고 SSH 서비스를 다시 시작하십시오. 기본적으로 username1, username2, username3 및 username4 SSH 로그인은 허용되지 않습니다.

아래 명령을 실행하여 동일하게 다시 시작하십시오.

# systemctl restart sshd

요구 사항이 완료되었습니다. 해당 사용자로부터 ssh를 가져 오면 "액세스 거부"오류가 발생합니다.


1
문제는 비밀번호 로그인 비활성화 (키 인증으로 로그인 유지)에 관한 것입니다.
Gerald Schneider
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.