Pregunta Directorio de inicio SSH por subdominio


Me pregunto si es posible establecer diferentes directorios de inicio para el mismo usuario ssh para cada subdominio.

Así que digamos que inicia sesión con ssh myuser@example.com Su directorio de inicio será: /www/httpdocs/

Si inicia sesión con ssh myuser@subdomain1.example.com Su directorio de inicio será: /www/subdomain1/

Si inicia sesión con ssh myuser@subdomain2.example.com Su directorio de inicio será: /www/subdomain2/

...

Y así.


12
2018-04-16 09:17


origen




Respuestas:


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). Hay un par de otras cosas que puede probar en su lugar:

  • Podría crear usuarios separados para cada subdominio, pero con el mismo UID que el usuario "principal". Los subdominios-usuarios tendrían su directorio de inicio configurado en el subdirectorio. Ejemplo:

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

  • Utilice un módulo PAM para autenticarse según el subdominio. Si tal módulo existe, no tengo idea de lo que sería, pero valdría la pena estudiarlo.

  • Use claves SSH separadas para cada subdominio. En el lado del cliente, configurar una .ssh/config para que puedas escribir ssh subdomain Para hacerlo iniciar sesión con la clave correcta. En el lado del servidor, tenga cada clave pública en authorized_keys empieza con las palabras environment="DOMAIN=subdomain". En el lado del servidor, también haga una .ssh/rc archivo que se cd al directorio correcto basado en el DOMAIN Variable ambiental. Esto requiere que el servidor esté configurado con PermitUserEnvironment yes.


19
2018-04-16 09:58



¡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 las variables ENV desde la máquina de origen de la conexión, pero me preguntó si tenían directorios HOME y no solo cd en ellos, así que no creo que sea una buena solución. - Florin Asăvoaie
+1, la idea de las claves SSH es extremadamente inteligente y no sabía que pudieras configurar el entorno de esta manera. - tgies


Esto NO es posible porque el protocolo SSH no envía el nombre de host solicitado a ningún lugar 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.


9
2018-04-16 09:26



Sería una posibilidad, pero es demasiado esfuerzo para el caso, necesito esto. Gracias - kapale