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/configpara que você possa digitarssh subdomainpara fazer login com a chave correta. No lado do servidor, cada chave pública emauthorized_keyscomeça com as palavrasenvironment="DOMAIN=subdomain". No lado do servidor, crie também um arquivo.ssh/rcque será enviado para o diretório correto com base na variável de ambienteDOMAIN. Isso requer que o servidor seja configurado comPermitUserEnvironment yes.