O SSH não pode fazer isso porque o protocolo SSH não inclui o nome do host solicitado na chamada. (O HTTP é um dos poucos protocolos que incluem o nome do host solicitado, que é como ele pode ser usado para hospedagem virtual.) Há algumas outras coisas que você pode tentar:
-
Você pode criar usuários separados para cada subdomínio, mas com o mesmo UID que o usuário "principal". Os usuários de subdomínio teriam seu diretório inicial configurado para o subdiretório. Exemplo:
useradd -o -u 4711 -d /var/www/subdomain1 subdomain1
-
Use um módulo PAM para autenticar com base no subdomínio. Se tal módulo existe, não tenho ideia do que seria, mas pode valer a pena investigar.
-
Use chaves SSH separadas para cada subdomínio. No lado do cliente, configure um
.ssh/config
para que você possa digitarssh subdomain
para fazer login com a chave correta. No lado do servidor, cada chave pública emauthorized_keys
começa com as palavrasenvironment="DOMAIN=subdomain"
. No lado do servidor, crie também um arquivo.ssh/rc
que será enviado para o diretório correto com base na variável de ambienteDOMAIN
. Isso requer que o servidor seja configurado comPermitUserEnvironment yes
.