서버에서는 루트에 대한 무제한 SSH 액세스가 필요하고 다른 모든 사용자에 대한 제한된 액세스가 필요합니다.
루트가 아닌 모든 사용자를 제한하고 싶습니다.
- SSH 로그인이 없습니다
/mnt/data/
마운트 만 허용됩니다.sshfs
sshd_config
다음과 같이 사용이 허용되는 것을 확인했습니다 Match User
.
Match User john
ChrootDirectory /mnt/data/
ForceCommand internal-sftp
AllowTCPForwarding no
X11Forwarding no
그러나 루트를 제외한 모든 사용자를 일치시키는 방법은 무엇입니까?
답변1
ssh
구성 파일의 일치 지시문은 부정을 지원합니다. 하지만 부정적인 조건은 약간 sshd_config
까다로운 것 같습니다.
Match User="!root,*"
루트를 제외한 모든 사용자에게 후속 지시어를 적용합니다.
관련 문서는 다음과 같습니다 man sshd_config
.
일치에는 조건부 블록이 도입됩니다.
...
일치 패턴은 단일 항목 또는 쉼표로 구분된 목록으로 구성될 수 있으며 ssh_config(5)의 패턴 섹션에 설명된 대로 와일드카드 및 부정 연산자를 사용할 수 있습니다.
그리고 다음에서 man ssh_config
:
패턴
패턴은 0개 이상의 공백이 아닌 문자, "*"(0개 이상의 문자와 일치하는 와일드카드) 또는 "?"(정확히 한 문자와 일치하는 와일드카드)로 구성됩니다.
...
부정 일치 자체만으로는 결코 긍정적인 결과를 얻을 수 없습니다.
예를 들어, "host3"을 다음 패턴 목록과 일치시키려는 시도는 실패합니다.from="!host1,!host2"
여기서 해결 방법은 와일드카드와 같이 긍정적인 일치를 생성하는 용어를 포함하는 것입니다.
from="!host1,!host2,*"
팁을 찾았습니다.이 기사Red Hat 고객 포털에서.