평소의 맨 아래에 다음이 있습니다./etc/ssh/sshd_config
Match Group sftpg
ChrootDirectory /data/%u
ForceCommand internal-sftp
# Personal settings
AllowUsers user1
AllowGroups user1
PermitRootLogin no
이 파일에는 다른 항목이 없으며 AllowUsers
적어도 이 디렉토리에는 다른 sshd 구성이 없습니다 /etc/ssh
.
그래도 user2
SSH를 통해 로그인하는 것은 가능합니다. 나완전히 다시 시작됨컴퓨터.
SSH에 속하지 않은 모든 사용자에게 SSH를 거부하면 안 되나요 AllowUsers
? 무엇을 시도할 수 있나요?
id user2
반품:
uid=1002(user2) gid=1002(user2) groups=1002(user2),115(nopasswdlogin),999(docker)
답변1
구성 파일에 대한 문서(참고자료 참조 man sshd_config
)에서는 Match
이러한 블록에 대해 설명합니다(강조).
Match
조건부 블록을 도입합니다. 다음 줄의 키워드는 해당 줄의 모든 조건이 충족되는 경우Match
구성 파일의 전역 섹션에 설정된 키워드보다 우선 적용됩니다 .일치하는 다른 줄이나 파일의 끝까지.
그것은 또한 말한다,
키워드 다음 줄에는 키워드 하위 집합만 사용할 수 있습니다
Match
. 사용 가능한 키워드는 [...]AllowGroups
, [...]AllowUsers
, [...]PermitRootLogin
, [...] 입니다.
따라서 차단이 적용되는 동안에만 AllowGroups
, AllowUsers
및 키워드가 적용됩니다. 당신이 쓴대로 :PermitRootLogin
Match Group sftpg
Match Group sftpg
ChrootDirectory /data/%u
ForceCommand internal-sftp
AllowUsers user1
AllowGroups user1
PermitRootLogin no
해결책은 전역 설정을 Match
첫 번째 블록 위로 이동하여 모든 곳에 적용되도록 하는 것입니다.
답변2
#Personal 섹션을 "Matching Groups/Matching Users" 섹션 위로 이동하고 sshd를 반송합니다. "Matching Users" 아래의 "AllowUsers"에서도 동일한 문제가 발생했습니다.