サブドメインごとのSSHホームディレクトリ


12

各サブドメインの同じsshユーザーに異なるホームディレクトリを設定できるかどうか疑問に思っています。

したがってssh myuser@example.com、ホームディレクトリでログインすると次のようになります。 /www/httpdocs/

ssh myuser@subdomain1.example.comホームディレクトリでログインすると、次のようになります。 /www/subdomain1/

ssh myuser@subdomain2.example.comホームディレクトリでログインすると、次のようになります。 /www/subdomain2/

...

等々。

回答:


19

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/rcDOMAIN環境変数に基づいて適切なディレクトリにcd するファイルも作成します。これには、サーバーをで構成する必要がありますPermitUserEnvironment yes


ありがとうございました!良い解決策のように思えます。試してみます。
カパレ14

私は実際にSSHキーを使用してソリューションを提案し、特に接続元マシンからENV変数をエクスポートしたかったのですが、彼はホームディレクトリがあり、cdそれらだけではなく、ホームディレクトリがあることを尋ねたので、それは良い解決策ではないと思いました。
フローリンアサボアエ14

+ 1、SSHキーのアイデアは非常に賢く、キーごとに環境をそのように設定できるとは知りませんでした。
tgies 14

8

SSHプロトコルは要求されたホスト名をパケットのどこにも送信しないため、これは不可能です。

これを実装するための私の考えは、OpenVZのようなものを使用してサブドメインを分離し、各サブドメインに個別のIPを持たせることです。


可能性がありますが、私がこれを必要とする場合にはあまりにも多くの努力です。ありがとう
kapale
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.