SSH no puede hacer eso porque el protocolo SSH no incluye el nombre de host solicitado en la llamada. (HTTP es uno de los pocos protocolos que incluye el nombre de host solicitado, que es cómo se puede usar para el alojamiento virtual). En su lugar, puede probar otras cosas:
Puede crear usuarios separados para cada subdominio, pero con el mismo UID que el usuario "principal". Los usuarios del subdominio tendrían su directorio de inicio establecido en el subdirectorio. Ejemplo:
Use un módulo PAM para autenticar en función del subdominio. Si existe tal módulo, no tengo idea de lo que sería, pero valdría la pena analizarlo.
Use claves SSH separadas para cada subdominio. En el lado del cliente, configure una .ssh/configpara que pueda escribir ssh subdomainpara que inicie sesión con la clave correcta. En el lado del servidor, authorized_keyscomience cada clave pública con las palabras environment="DOMAIN=subdomain". En el lado del servidor, también cree un .ssh/rcarchivo que se cd en el directorio correcto basado en la DOMAINvariable de entorno. Esto requiere que el servidor esté configurado con PermitUserEnvironment yes.
¡Gracias! Suena como una buena solución. Lo probaré.
kapale
De hecho, también quería sugerir la solución con las claves SSH y, especialmente, exportar vars ENV desde la máquina de origen de la conexión, pero me preguntó sobre tener directorios HOME y no solo cden ellos, así que no pensé que fuera una buena solución.
Florin Asăvoaie
+1, la idea de las claves SSH es extremadamente inteligente y no sabía que podría configurar el entorno por clave de esa manera.
tgies
8
Esto NO es posible porque el protocolo SSH no envía el nombre de host solicitado a ninguna parte de los paquetes.
Mi idea al implementar esto sería usar algo como OpenVZ para aislar los subdominios y tener una IP separada para cada subdominio.
cd
en ellos, así que no pensé que fuera una buena solución.Esto NO es posible porque el protocolo SSH no envía el nombre de host solicitado a ninguna parte de los paquetes.
Mi idea al implementar esto sería usar algo como OpenVZ para aislar los subdominios y tener una IP separada para cada subdominio.
fuente