gur*_*ert 5 ssh configuration sshd
我有sshd应该只允许sftp访问一组用户的情况。
只需添加匹配部分即可轻松完成此操作
Match Group groupname
ChrootDirectory /srv/ftp
ForceCommand internal-sftp
Run Code Online (Sandbox Code Playgroud)
现在,我需要排除一个属于该组成员的用户。他应该具有正常的外壳访问权限。
Match User username
ChrootDirectory ???
ForceCommand ???
Run Code Online (Sandbox Code Playgroud)
我在这里设置什么?是否可以通过其他匹配部分取消预先设置的配置指令?
首先将设置应用于组,不包括用户用户名,然后将(其他)设置应用于用户用户名。如果您不使用用户名的“ForceCommand”设置,则不会应用它。
Match Group groupname User !username
ChrootDirectory /srv/ftp
ForceCommand internal-sftp
Match User username
PasswordAuthentication yes
Run Code Online (Sandbox Code Playgroud)
另一个例子是,如果用户从不同的 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
Run Code Online (Sandbox Code Playgroud)
不要添加Match User
部分。而是通过从原始匹配中排除用户来排除用户。
Match Group groupname User !username
ChrootDirectory /srv/ftp
ForceCommand internal-sftp
Run Code Online (Sandbox Code Playgroud)
Match
要应用此部分,必须满足该行上的所有条件。
我不确定确切的语法。您可能需要引号。
Match Group groupname User "!username"
ChrootDirectory /srv/ftp
ForceCommand internal-sftp
Run Code Online (Sandbox Code Playgroud)