每个子域的SSH主目录

我想知道是否可以为每个子域为同一个ssh用户设置不同的主目录.

因此,假设您使用ssh myuser@example.com登录您的主目录将是:
/网络/的httpdocs /

如果您使用ssh myuser@subdomain1.example.com登录,您的主目录将是:
/网络/ subdomain1 /

如果您使用ssh myuser@subdomain2.example.com登录,您的主目录将是:
/网络/ subdomain2 /

等等.

SSH无法做到这一点,因为SSH协议不包括调用中请求的主机名. (HTTP是少数几个包含所请求主机名的协议之一,它可以用于虚拟主机.)还有一些其他的东西可以尝试:

>您可以为每个子域创建单独的用户,但使用与“主”用户相同的UID.子域用户将其主目录设置为子目录.例:

useradd -o -u 4711 -d / var / www / subdomain1 subdomain1
>使用PAM模块基于子域进行身份验证.如果这样的模块存在,我不知道它会是什么,但它可能值得研究.
>为每个子域使用单独的SSH密钥.在客户端,设置.ssh / config,以便您可以键入ssh子域以使用正确的密钥登录.在服务器端,让authorized_keys中的每个公钥都以单词environment =“DOMAIN = subdomain”开头.在服务器端,还要创建一个.ssh / rc文件,该文件将根据DOMAIN环境变量cd到正确的目录.这要求服务器配置PermitUserEnvironment yes.

翻译自:https://serverfault.com/questions/589379/ssh-home-directory-per-subdomain

转载注明原文:每个子域的SSH主目录