サーバーでは、ルートへの無制限のSSHアクセスが必要で、他のすべてのユーザーへの制限付きアクセスが必要です。
ルート以外のすべてのユーザーを制限したいです。
- SSHログインがありません
/mnt/data/
マウントのみ許可されます。sshfs
sshd_config
次のように使用が許可されていることを確認しましたMatch User
。
Match User john
ChrootDirectory /mnt/data/
ForceCommand internal-sftp
AllowTCPForwarding no
X11Forwarding no
しかし、ルート以外のすべてのユーザーを一致させるには?
答え1
ssh
構成ファイルの一致ディレクティブは否定をサポートします。しかし、否定的な条件は少しsshd_config
トリッキーなようです。
Match User="!root,*"
ルートを除くすべてのユーザーに後続のディレクティブを適用します。
関連文書は次のとおりですman sshd_config
。
一致には条件付きブロックが導入されます。
...
一致パターンは、単一の項目またはカンマ区切りリストで構成でき、ssh_config(5)のパターンセクションで説明されているように、ワイルドカードおよび否定演算子を使用できます。
そして次からman ssh_config
:
パターン
パターンは、ゼロ個以上の空白以外の文字、「*」(0個以上の文字に一致するワイルドカード)、または「?」(正確に1文字に一致するワイルドカード)で構成されます。
...
否定的な一致自体だけでは、肯定的な結果を得ることはできません。
たとえば、「host3」を次のパターンリストと一致させようとすると失敗します。from="!host1,!host2"
ここで回避策は、ワイルドカードなどの肯定的な一致を生成する用語を含めることです。
from="!host1,!host2,*"
ヒントが見つかりました。この記事Red Hat カスタマーポータルで。