Match
我正在OpenSSH(在 debian 上)中使用一个块/etc/ssh/sshd_config
来限制某些用户使用 SFTP:
# my stuff
Match group sftponly
X11Forwarding no
AllowTcpForwarding no
ForceCommand internal-sftp -u 0002
ChrootDirectory %h
正如您所看到的,我#my stuff
在自定义配置文件中使用注释来轻松区分默认配置和我所做的配置(我将它们放在配置文件的末尾)。
现在我想将该指令附加UseDNS no
到配置中(以加快登录速度),但 OpenSSH 说Directive 'UseDNS' is not allowed within a Match block
。
End Match
现在我想知道是否有类似结束这些匹配块的语法?
答案1
要使用 openssh 6.5p1 或更高版本结束匹配块,请使用以下行:Match all
/etc/ssh/sshd_config
这是从我的文件中获取的一段代码:
# Change to no to disable tunnelled clear text passwords
PasswordAuthentication no
Match host 192.168.1.12
PasswordAuthentication yes
Match all
X11Forwarding yes
X11DisplayOffset 10
带鞋底的线Match
是行不通的。 (这对我不起作用,sshd拒绝启动)
答案2
似乎没有办法显式结束 Match 块。来自sshd_config 手册页:
如果匹配行上的所有条件都满足,则以下行中的关键字将覆盖配置文件全局部分中设置的关键字,直到另一个匹配行或文件末尾。
所以Match
块需要位于文件的末尾sshd_config
。
答案3
我认为我们应该同时提到Match
和key。Host
Host
限制以下声明(直到下一个
Host
或Match
关键字)仅适用于与关键字后给定的模式之一匹配的主机。
Match
限制仅当满足 Match 关键字后面的条件时才使用以下声明(直到下一个
Host
或 关键字)。Match
阅读 的手册man ssh_config
,Host *
和Match all
都会重置前一个限制块,无论前一个是Match
块还是Host
块。