OpenSSH:如何结束匹配块

OpenSSH:如何结束匹配块

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

限制以下声明(直到下一个HostMatch关键字)仅适用于与关键字后给定的模式之一匹配的主机。

Match

限制仅当满足 Match 关键字后面的条件时才使用以下声明(直到下一个Host或 关键字)。Match

阅读 的手册man ssh_configHost *Match all都会重置前一个限制块,无论前一个是Match块还是Host块。

相关内容