sshfs: 루트가 아닌 모든 사용자를 특정 디렉토리로 chroot

sshfs: 루트가 아닌 모든 사용자를 특정 디렉토리로 chroot

서버에서는 루트에 대한 무제한 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 고객 포털에서.

관련 정보