覆寫 sshd_config 中的 DenyGroups

覆寫 sshd_config 中的 DenyGroups

我有一個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

對我來說似乎很簡單,只需gregnologin群組中刪除即可。

答案3

你不能這樣做,因為全部sshd在做出最終決定之前會對指令進行評估。因此,雖然greg是 允許的AllowUsers,但稍後會通過DenyGroups匹配他所在的組來拒絕。了這一點備用系統上的 5.2p1。事實上,評估順序應該是相反的(首先允許/拒絕群組,然後允許/拒絕使用者)。至少對我來說,這更有意義。

相關內容