Configuration 具有多个匹配部分的SSD,覆盖设置

Configuration 具有多个匹配部分的SSD,覆盖设置,configuration,ssh,sshd,Configuration,Ssh,Sshd,我的情况是,sshd应该只允许sftp访问一组用户 通过添加一个匹配部分(如 Match Group groupname ChrootDirectory /srv/ftp ForceCommand internal-sftp 现在我需要排除一个属于该组的用户。他应该有正常的外壳访问权限 Match User username ChrootDirectory ??? ForceCommand ??? 我在这里设置什么? 是否可以取消设置先前与另一个匹配节设置的配

我的情况是,sshd应该只允许sftp访问一组用户

通过添加一个匹配部分(如

Match Group groupname
    ChrootDirectory /srv/ftp
    ForceCommand internal-sftp
现在我需要排除一个属于该组的用户。他应该有正常的外壳访问权限

Match User username
    ChrootDirectory ???
    ForceCommand ???
我在这里设置什么?
是否可以取消设置先前与另一个匹配节设置的配置指令?

不要添加
匹配用户
节。相反,通过将用户从原始匹配中排除来排除该用户

Match Group groupname User !username
    ChrootDirectory /srv/ftp
    ForceCommand internal-sftp
必须满足
匹配
行上的所有标准,才能应用该部分

我不确定确切的语法。你可能需要报价

Match Group groupname User "!username"
    ChrootDirectory /srv/ftp
    ForceCommand internal-sftp

首先将设置应用于组(不包括用户用户名),然后将(其他)设置应用于用户用户名。如果未对用户用户名使用“ForceCommand”设置,则不会应用该设置

Match Group groupname User !username
   ChrootDirectory /srv/ftp
   ForceCommand internal-sftp
Match User username
   PasswordAuthentication yes
另一个例子是,如果用户从不同的ip地址登录,您可能需要不同的设置

#all users except username1 and username2 default to sftp
Match User *,!username1,!username2
    PasswordAuthentication yes
    AllowTCPForwarding no
    X11Forwarding no
    ForceCommand internal-sftp -f LOCAL0 -l INFO

#normal ssh allowed for users username1 and username2 from the local network
Match User username1,username2 Address 192.168.0.0/16
    PasswordAuthentication yes

#users username1 and username2 not allowed from other networks
Match User username1,username2 Address *,!192.168.0.0/16
    PasswordAuthentication yes
    AllowTCPForwarding no
    X11Forwarding no
    ForceCommand /usr/sbin/nologin

对我有效的是将用户规则放在首位:

Match user lee
    ChrootDirectory /mnt/s3
    ForceCommand internal-sftp

Match group ftp
    ChrootDirectory /home/%u
    ForceCommand internal-sftp

对于其他偶然发现这一点的人来说,引用是不必要的,我只是在阅读之前无法让它起作用。结果发现模式匹配中有一个bug,您需要执行“匹配组groupname,User*,!username”,在我执行该操作后,它立即按预期工作。@nicolasmommarts With SSH Config,“可能会通过在前面加一个感叹号(“!”)来否定条件”。您也可以使用SSHD执行该操作吗<代码>匹配组foo!用户bar baz您的第二个示例正是我需要的,因此非常感谢。为了将“坏”用户分组在一起,我引入了一个组,例如,
badusers
Match group badusers Address*,!192.168.0.0/16密码验证号