Ssh
sshfs:chroot所有非root使用者到特定目錄
在伺服器上,我需要對 root 使用者進行不受限制的 ssh 訪問,並對所有其他使用者進行限制。
我想將所有非 root 使用者限制為:
- 沒有 ssh 登錄
- 只允許安裝
/mnt/data/
使用sshfs
我看到
sshd_config
允許使用Match User
,即:Match User john ChrootDirectory /mnt/data/ ForceCommand internal-sftp AllowTCPForwarding no X11Forwarding no
但是如何匹配除 root 之外的所有使用者?
的配置文件中的 Match 指令
ssh
支持否定。但看起來否定條件sshd_config
有點棘手:你必須寫Match User="!root,*"
將後續指令應用於除 root 之外的所有使用者。
以下是相關文件:來自
man sshd_config
:Match 引入一個條件塊。
…
匹配模式可以由單個條目或逗號分隔的列表組成,並且可以使用 ssh_config(5) 的 PATTERNS 部分中描述的萬用字元和否定運算符。
從
man ssh_config
:模式
模式由零個或多個非空白字元、’*’(匹配零個或多個字元的萬用字元)或’?‘組成 (與一個字元完全匹配的萬用字元)。
…
請注意,否定匹配本身永遠不會產生肯定的結果。
例如,嘗試將“host3”與以下模式列表匹配將失敗:
from="!host1,!host2"
這裡的解決方案是包含一個會產生正匹配的術語,例如萬用字元:
from="!host1,!host2,*"
在 Red Hat Customer Portal 上的這篇文章中找到提示。