SSH ne peut pas faire cela car le protocole SSH n'inclut pas le nom d'hôte demandé dans l'appel. (HTTP est l'un des rares protocoles qui inclut le nom d'hôte demandé, c'est ainsi qu'il peut être utilisé pour l'hébergement virtuel.) Il y a quelques autres choses que vous pouvez essayer à la place:
Vous pouvez créer des utilisateurs distincts pour chaque sous-domaine, mais avec le même UID que l'utilisateur "principal". Les utilisateurs du sous-domaine auraient leur répertoire personnel défini dans le sous-répertoire. Exemple:
Utilisez un module PAM pour vous authentifier en fonction du sous-domaine. Si un tel module existe, je n'ai aucune idée de ce qu'il serait, mais cela pourrait valoir la peine d'être étudié.
Utilisez des clés SSH distinctes pour chaque sous-domaine. Côté client, configurez un .ssh/configafin que vous puissiez taper ssh subdomainpour qu'il se connecte avec la bonne clé. Côté serveur, chaque clé publique doit authorized_keyscommencer par les mots environment="DOMAIN=subdomain". Côté serveur, créez également un .ssh/rcfichier qui sera enregistré dans le bon répertoire en fonction de la DOMAINvariable d'environnement. Cela nécessite que le serveur soit configuré avec PermitUserEnvironment yes.
Je vous remercie! Cela ressemble à une bonne solution. Je vais essayer.
kapale
En fait, je voulais également suggérer la solution avec les clés SSH et, en particulier, exporter les fichiers ENV à partir de la machine d'origine de la connexion, mais il a demandé des répertoires HOME et pas seulement cddedans, donc je ne pense pas que ce soit une bonne solution.
Florin Asăvoaie
+1, l'idée des clés SSH est extrêmement intelligente et je ne savais pas que vous pouviez définir l'environnement par clé comme ça.
tgies
8
Ce n'est PAS possible car le protocole SSH n'envoie le nom d'hôte demandé nulle part dans les paquets.
Mon idée sur l'implémentation serait d'utiliser quelque chose comme OpenVZ pour isoler les sous-domaines et avoir une IP distincte pour chaque sous-domaine.
cd
dedans, donc je ne pense pas que ce soit une bonne solution.Ce n'est PAS possible car le protocole SSH n'envoie le nom d'hôte demandé nulle part dans les paquets.
Mon idée sur l'implémentation serait d'utiliser quelque chose comme OpenVZ pour isoler les sous-domaines et avoir une IP distincte pour chaque sous-domaine.
la source