OpenSSH:如何结束匹配块


49

Match在OpenSSH /etc/ssh/sshd_config(在Debian上)中使用了一个块来限制某些用户使用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来结束那些匹配块?

Answers:


30

要以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
太好了,我刚刚尝试了一下,它似乎按预期工作了(我什至可以使用UseDNS指令(之前没有用过)。接受它作为新答案。-显然新的OpenSSH版本甚至都不会使用)以空开头Matchlists.mindrot.org/pipermail/openssh-unix-dev/2014-April/…–
mreithub

42

似乎没有办法明确结束Match块。在sshd_config手册页中

如果满足“匹配”行中的所有条件,则以下各行中的关键字将覆盖在配置文件的全局部分中设置的关键字,直到另一“匹配”行或文件末尾为止。

因此,Match块必须位于sshd_config文件的末尾。


7
另一种选择是使一条线上面没有任何东西Match,它有效地匹配所有内容,因此与“结束”该块相同。但是,这仍然不能让您使用Match块中不允许的指令,因此对于您的特定情况没有帮助。
内森·布斯卡

4
“匹配块必须位于sshd_config文件的末尾。” 对我非常有帮助,在手册页等中没有对我做足够清楚的解释(对我来说)。谢谢。
MountainX

0

我认为我们应该同时提及MatchHost键。

Host

限制以下声明(最多使用next HostMatch关键字)仅适用于那些与关键字之后给出的模式之一匹配的主机。

Match

限制仅当满足Match关键字之后的条件时才使用以下声明(直到next HostMatch关键字)。

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

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.