서브 도메인 당 SSH 홈 디렉토리


12

각 하위 도메인에 대해 동일한 ssh 사용자에 대해 다른 홈 디렉토리를 설정할 수 있는지 궁금합니다.

따라서 ssh myuser@example.com홈 디렉토리로 로그인한다고 가정 해보십시오. /www/httpdocs/

ssh myuser@subdomain1.example.com홈 디렉토리로 로그인하면 다음과 같습니다. /www/subdomain1/

ssh myuser@subdomain2.example.com홈 디렉토리로 로그인하면 다음과 같습니다. /www/subdomain2/

...

등등.

답변:


19

SSH 프로토콜은 호출에 요청 된 호스트 이름을 포함하지 않기 때문에 SSH를 수행 할 수 없습니다. HTTP는 요청 된 호스트 이름을 포함하는 몇 가지 프로토콜 중 하나이며, 이는 가상 호스팅에 사용되는 방법입니다. 대신 시도해 볼 수있는 몇 가지 다른 방법이 있습니다.

  • 각 하위 도메인에 대해 별도의 사용자를 만들 수 있지만 "주"사용자와 동일한 UID를 사용합니다. 하위 도메인 사용자는 홈 디렉토리를 하위 디렉토리로 설정합니다. 예:

    useradd -o -u 4711 -d /var/www/subdomain1 subdomain1

  • PAM 모듈을 사용하여 하위 도메인을 기반으로 인증하십시오. 그러한 모듈이 존재한다면 나는 그것이 무엇인지 알지 못하지만 조사해 볼 가치가 있습니다.

  • 각 하위 도메인마다 별도의 SSH 키를 사용하십시오. 클라이언트 측 에서 올바른 키를 사용하여 로그인하도록 .ssh/config입력 할 수 있도록 설정 ssh subdomain하십시오. 서버 측에서 각 공개 키 authorized_keys가 단어 로 시작하도록하십시오 environment="DOMAIN=subdomain". 서버 측에서도 환경 변수 .ssh/rc에 따라 올바른 디렉토리로 cd 할 파일을 만듭니다 DOMAIN. 이를 위해서는 서버를로 구성해야 PermitUserEnvironment yes합니다.


감사합니다! 좋은 해결책 인 것 같습니다. 시도해 볼게요.
kapale

실제로 SSH 키를 사용하여 솔루션을 제안하고 특히 연결 원본 시스템에서 ENV 변수를 내보내는 것이 좋았지 만 HOME 디렉토리가 있는지 물어 보았을뿐 아니라 좋은 디렉토리 cd라고 생각하지 않았습니다.
Florin Asăvoaie

+1, SSH 키 아이디어는 매우 영리하며 키별로 환경을 설정할 수 있다는 것을 몰랐습니다.
tgies

8

SSH 프로토콜은 요청 된 호스트 이름을 패킷의 어느 곳으로도 보내지 않기 때문에 불가능합니다.

이것을 구현하는 것에 대한 나의 생각은 OpenVZ와 같은 것을 사용하여 하위 도메인을 분리하고 각 하위 도메인에 대해 별도의 IP를 갖는 것입니다.


가능성이 있지만 이것이 필요한 경우에는 너무 많은 노력입니다. 감사합니다
kapale
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.