回答:
SSHプロトコルでは、要求されたホスト名がコールに含まれていないため、SSHではできません。(HTTPは、要求されたホスト名を含む数少ないプロトコルの1つです。これは、仮想ホスティングにどのように使用できるかです。)代わりに試すことができる他のいくつかの方法があります。
サブドメインごとに個別のユーザーを作成できますが、「メイン」ユーザーと同じUIDを使用します。サブドメインユーザーのホームディレクトリは、サブディレクトリに設定されます。例:
useradd -o -u 4711 -d /var/www/subdomain1 subdomain1
PAMモジュールを使用して、サブドメインに基づいて認証します。そのようなモジュールが存在する場合、それがどうなるかはわかりませんが、検討する価値があるかもしれません。
サブドメインごとに個別のSSHキーを使用します。クライアント側で、.ssh/config
入力ssh subdomain
して正しいキーでログインできるように設定します。サーバー側ではauthorized_keys
、単語で始まる各公開鍵を持ちますenvironment="DOMAIN=subdomain"
。サーバー側で.ssh/rc
、DOMAIN
環境変数に基づいて適切なディレクトリにcd するファイルも作成します。これには、サーバーをで構成する必要がありますPermitUserEnvironment yes
。
cd
それらだけではなく、ホームディレクトリがあることを尋ねたので、それは良い解決策ではないと思いました。
SSHプロトコルは要求されたホスト名をパケットのどこにも送信しないため、これは不可能です。
これを実装するための私の考えは、OpenVZのようなものを使用してサブドメインを分離し、各サブドメインに個別のIPを持たせることです。