SSH kann das nicht, da das SSH-Protokoll den angeforderten Hostnamen nicht in den Aufruf einbezieht. (HTTP ist eines der wenigen Protokolle, das den angeforderten Hostnamen enthält. So kann es für virtuelles Hosting verwendet werden.) Stattdessen können Sie einige andere Dinge versuchen:
Sie können separate Benutzer für jede Unterdomäne erstellen, jedoch mit derselben UID wie der Hauptbenutzer. Die Subdomain-Benutzer würden ihr Home-Verzeichnis auf das Unterverzeichnis setzen. Beispiel:
Verwenden Sie ein PAM-Modul, um sich anhand der Unterdomäne zu authentifizieren. Wenn ein solches Modul existiert, habe ich keine Ahnung, was es sein würde, aber es könnte sich lohnen, es zu untersuchen.
Verwenden Sie für jede Unterdomäne separate SSH-Schlüssel. Richten Sie auf der Clientseite eine ein, .ssh/configdamit Sie ssh subdomainsie mit dem richtigen Schlüssel anmelden können. Auf der Serverseite muss jeder öffentliche Schlüssel authorized_keysmit den Worten beginnen environment="DOMAIN=subdomain". Erstellen Sie auf der Serverseite auch eine .ssh/rcDatei, die auf der Grundlage der DOMAINUmgebungsvariablen in das richtige Verzeichnis kopiert wird. Dazu muss der Server mit konfiguriert sein PermitUserEnvironment yes.
Vielen Dank! Klingt nach einer guten Lösung. Ich werde es versuchen.
Kapale
Eigentlich wollte ich auch die Lösung mit den SSH-Schlüsseln vorschlagen und insbesondere ENV-Variablen vom Verbindungsursprungscomputer exportieren, aber er fragte nach HOME-Verzeichnissen und nicht nur danach cd, weshalb ich es nicht für eine gute Lösung hielt.
Florin Asăvoaie
+1, die Idee mit den SSH-Schlüsseln ist extrem clever und ich wusste nicht, dass man die Umgebung pro Schlüssel so einstellen kann.
Tgies
8
Dies ist NICHT möglich, da das SSH-Protokoll den angeforderten Hostnamen nirgendwo in den Paketen sendet.
Meine Idee bei der Implementierung wäre, OpenVZ zu verwenden, um die Subdomains zu isolieren und für jede Subdomain eine eigene IP zu haben.
cd
, weshalb ich es nicht für eine gute Lösung hielt.Dies ist NICHT möglich, da das SSH-Protokoll den angeforderten Hostnamen nirgendwo in den Paketen sendet.
Meine Idee bei der Implementierung wäre, OpenVZ zu verwenden, um die Subdomains zu isolieren und für jede Subdomain eine eigene IP zu haben.
quelle