Home directory SSH per sottodominio


12

Mi chiedo se sia possibile impostare home directory diverse per lo stesso utente ssh per ciascun sottodominio.

Quindi supponiamo che il login con la ssh myuser@example.comtua home directory sarà: /www/httpdocs/

Se accedi con la ssh myuser@subdomain1.example.comtua home directory sarà: /www/subdomain1/

Se accedi con la ssh myuser@subdomain2.example.comtua home directory sarà: /www/subdomain2/

...

E così via.

Risposte:


19

SSH non può farlo perché il protocollo SSH non include il nome host richiesto nella chiamata. (HTTP è uno dei pochi protocolli che include il nome host richiesto, che è come può essere utilizzato per l'hosting virtuale.) Ci sono un paio di altre cose che potresti provare invece:

  • È possibile creare utenti separati per ciascun sottodominio, ma con lo stesso UID dell'utente "principale". Gli utenti del sottodominio avrebbero la loro home directory impostata sulla sottodirectory. Esempio:

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

  • Utilizzare un modulo PAM per eseguire l'autenticazione in base al sottodominio. Se un tale modulo esiste, non ho idea di cosa sarebbe, ma potrebbe valere la pena esaminarlo.

  • Utilizzare chiavi SSH separate per ciascun sottodominio. Sul lato client, imposta un in .ssh/configmodo da poter digitare ssh subdomainper farlo accedere con la chiave corretta. Sul lato server, ogni chiave pubblica deve authorized_keysiniziare con le parole environment="DOMAIN=subdomain". Sul lato server, crea anche un .ssh/rcfile che verrà inserito nella directory corretta in base alla DOMAINvariabile di ambiente. Ciò richiede la configurazione del server PermitUserEnvironment yes.


Grazie! Sembra una buona soluzione. Lo proverò.
Kapale,

In realtà volevo anche suggerire la soluzione con le chiavi SSH e, in particolare, l'esportazione di VAR ENV dalla macchina di origine della connessione, ma mi ha chiesto di avere directory HOME e non solo cdin esse, quindi non pensavo che fosse una buona soluzione.
Florin Asăvoaie,

+1, l'idea delle chiavi SSH è estremamente intelligente e non sapevo che si potesse impostare l'ambiente per chiave in quel modo.
tgies

8

Questo NON è possibile perché il protocollo SSH non invia il nome host richiesto da nessuna parte nei pacchetti.

La mia idea sull'implementazione sarebbe quella di usare qualcosa come OpenVZ per isolare i sottodomini e avere un IP separato per ogni sottodominio.


Sarebbe una possibilità, ma è uno sforzo eccessivo per il caso di cui ho bisogno. Grazie
Kapale
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.