
我有一個sshd_config
檔案配置為不允許群組中的使用者nologin
存取ssh
此伺服器 ( DenyGroups nologin
)。雖然我在該群組中有多個用戶,但我確實想為其中一個用戶覆蓋此設定(我們稱之為 user greg
)。
我嘗試添加AllowUsers greg
到文件中sshd_config
,但這似乎不起作用。是否有可能做到這一點?
sshd_config 看起來像:
AllowTcpForwarding no
ClientAliveCountMax 1
ClientAliveInterval 300
LoginGraceTime 1m
PermitRootLogin no
Protocol 2
RSAAuthentication no
Subsystem sftp /usr/libexec/openssh/sftp-server
UsePAM yes
X11Forwarding yes
DenyGroups nologin
LogLevel INFO
MaxAuthTries 4
IgnoreRhosts yes
HostBasedAuthentication no
PermitEmptyPasswords no
PermitUserEnvironment no
Ciphers aes128-ctr,aes192-ctr,aes256-ctr
新增「AllowUsers greg」(greg 是登入群組的成員)不允許 greg 進行 ssh。
答案1
手冊頁sshd_config(5)
描述了這些選項的行為,如下所示:
如果指定的話,僅允許/禁止其主要群組或補充群組清單或名稱與其中一種模式相符的使用者/群組登入。僅組名有效;無法辨識數字組 ID。預設情況下,允許所有群組登入。允許/拒絕指令按以下順序處理:拒絕用戶,允許用戶,拒絕組,最後允許組。
這暗示如果你只定義這兩個選項,它應該為你工作。您可能使用了一些其他選項來幹擾您的設定。您可以發佈您正在使用的整個配置嗎?
答案2
對我來說似乎很簡單,只需greg
從nologin
群組中刪除即可。
答案3
你不能這樣做,因為全部sshd
在做出最終決定之前會對指令進行評估。因此,雖然greg
是 允許的AllowUsers
,但稍後會通過DenyGroups
匹配他所在的組來拒絕。了這一點備用系統上的 5.2p1。事實上,評估順序應該是相反的(首先允許/拒絕群組,然後允許/拒絕使用者)。至少對我來說,這更有意義。