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

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

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

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

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

등등.



답변

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합니다.


답변

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

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