sshd_config에서 AllowGroups와 AllowUsers를 모두 사용하는 방법은 무엇입니까?


28

나는 수정하기 위해 노력하고있어 /etc/ssh/sshd_config모두 내 전용 debian7 서버 AllowUsersAllowGroups. 그러나 나는 둘 다 함께 일할 수는없는 것 같습니다.


설정

  • 라는 사용자가 testuser있습니다.
  • 해당 사용자는 다음과 같은 그룹에 있습니다 ssh-users.

    $ groups testuser
    testuser : testuser ssh-users
    
  • testuser연결을 시도 ssh testuser@<server_ip>하고 비밀번호를 입력하려고합니다.

  • sshd_config여기에서 찾을 수 있습니다 : http://pastebin.com/iZvVDFKL- 기본적으로 내가 기본값에서 한 유일한 변경 사항은 다음과 같습니다.
    • 설정 PermitRootLogin no
    • 두 명의 사용자를 추가하십시오 AllowUsers(실제 사용자 이름은 서버마다 다릅니다)
  • service ssh restart수정 후 매번 실행됩니다 sshd_config.

문제

  • testuser 설정하면 연결할 있습니다AllowUsers:

    AllowUsers user1 user2 testuser
    
  • testuser그룹을 설정할 때 연결할 수 없습니다AllowGroups :

    AllowUsers user1 user2
    AllowGroups ssh-users
    

    어떤 결과 Permission denied, please try again.testuserssh를 암호 프롬프트에 암호를 입력합니다.


질문

  • 합니까의 AllowUsers재정 AllowGroups?
  • 사용자 이름을 수동으로 추가하지 않고이를 해결하는 가장 좋은 방법은 무엇입니까 AllowUsers? 이상적으로 ssh-users는 나중에 sshd_config다시 만질 필요없이 그룹에 사용자를 추가 할 수 있기를 바랍니다.

5
Ideally I'd like to be able to just add users to the ssh-users group in the future without having to touch sshd_config again.-왜 AllowUsers를 사용합니까? 모든 사람들을 그룹 / 그룹에 넣으십시오.
Zoredache

답변:


24

예, AllowUsers이상 우선합니다 AllowGroups. 지정된 경우 지정된 패턴과 일치하는 사용자 만 AllowUsersSSHD 인스턴스에 연결할 수 있습니다.

sshd_config 맨 페이지 에 따르면 :

(가) / 허용 지시자는 다음과 같은 순서로 처리 부인 : DenyUsers, AllowUsers, DenyGroups, 마지막 AllowGroups.

따라서 문제에 대한 해결책은 그룹이 선호하는 사용자 관리 방법 인 경우 그룹 액세스 지시문 중 하나를 사용하는 것입니다.


그냥 일을 AllowGroups user1 user2 ssh-users했을까요? 우연히 내 자신의 ssh 권한을 제거하고 수정하기 위해 지원을 거쳐야하기 때문에 테스트를 수행하기 전에 확인을 선호합니다. 방법에 대한 Match블록? 맨 페이지를 보았지만 실제로 어떻게 작동하는지 알 수있는 직감 / 경험이 없기 때문에 조언을 구하고 있습니다. 예를 들어 처리 순서에 따라 AllowGroups가 AllowUsers를 따르므로 처리 될 때이를 무시하지만 직감이 잘못되었습니다. :)
Johannes

2
이 세 가지가 모두 시스템의 그룹 인 경우 작동합니다. user1과 user2가 단지 사용자 인 경우 ssh-users에 추가하고 AllowGroups ssh-users를 통해이를 얻을 수 있습니다.
Jeff-Inventor ChromeOS 2018 년

@Johannes 당신이 그런 것을 테스트 할 때, 단지 기계에 쉘이 열려 있는지 확인하십시오. sshd를 다시 시작해도 세션이 중단되지 않으며 새 세션을 열 수 없으면 기존 세션으로 혼란을 해결할 수 있습니다.
Jean-Bernard Jansen

6

제프의 대답은 설명 된대로 문제의 세부 사항을 포함,하지만 난 사용을 찾고이 질문에 발견 AllowUsers하고 AllowGroups약간 다른 시나리오를. 특정 서브넷에서 들어오는 그룹 (ssh)의 사용자로 들어오는 연결을 제한하고 싶었습니다.

sshd_config 의 연결 규칙은 필터입니다. 각 추가 규칙이 적용되면 허용되는 사용자 집합 만 줄일 수 있습니다. PATTERNSssh_config를 (5) 이 규칙의 형태를 설명한다.

또한 AllowUsers섹션에 따르면 sshd_config:

패턴이 USER @ HOST 형식 인 경우 USER 및 HOST를 별도로 검사하여 특정 호스트의 특정 사용자로 로그인을 제한합니다. HOST 기준에는 CIDR 주소 / 마스크 렌 형식으로 일치하는 주소가 추가로 포함될 수 있습니다.

AllowGroups USER @ HOST 양식을 수락하지 않습니다.

따라서 1) ssh 그룹의 사용자와 2) 특정 서브넷 / 호스트의 사용자를 수락하려면 다음을 수행하십시오.

AllowUsers *@192.168.1.0/24 *@*.example.com *@1.2.3.4
AllowGroups ssh

AllowGroups doesn't accept the USER@HOST form. 이것이 무엇을 의미하는지 확실하지 않으며 구성 파일이나 문서가 말하는 것이 아닙니다. 그룹 허용을 사용하면 ssh username@example.com을 사용하여 로그인 할 수 있습니다.
AndrewD

1
@AndrewD AllowGroups는 그룹 이름 만 허용 AllowGroups ssh@example.com합니다. 예를 들어, 수행 할 수 없습니다 . HOST는 소스를 제공하는 곳입니다.
bjacobowski

3

다음은 작동하는 솔루션입니다.

AllowUsers user1 user2
Match group ssh-users
    AllowUsers *
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.