sshd 在启动时不读取包含的配置文件

sshd 在启动时不读取包含的配置文件

我的/etc/ssh/sshd_config结尾是这样的:

Include sshd_config.d/sftp_users.conf

但是,该文件的内容并未包含在内。通过绝对路径或 glob 包含不会改变任何内容。

为了使自己确信它确实没有被读取,我跟踪了 sshd(输出如下)。绝对没有被读取。然而,据说Include7.3p1显然坚定的于 2020 年 2 月 1 日(2020 年 3 月 31 日之前)。

虽然我可以将包含的文件放在主目录中sshd_config,但将定制文件放入其中会很方便sshd_config.d/*conf

有什么建议可以解释为什么这不起作用吗?

这是一个 ubuntu 20.04 图像,仅供参考。

更新

使用-dddsshd 选项,

/usr/sbin/sshd -ddd

我发现包含相对路径名(在我看来是可以工作的)不起作用。更改为绝对路径名会报告配置现在正在被读取:

debug2: /etc/ssh/sshd_config line 9: new include /etc/ssh/sshd_config.d/sftp_users.conf
debug2: /etc/ssh/sshd_config line 9: including /etc/ssh/sshd_config.d/sftp_users.conf
debug2: load_server_config: filename /etc/ssh/sshd_config.d/sftp_users.conf
debug2: load_server_config: done config len = 182
debug2: parse_server_config_depth: config /etc/ssh/sshd_config.d/sftp_users.conf len 182
debug3: checking syntax for 'Match Group sftp_users'

但是模式永远不会匹配,而如果Match块本身存在,它就会匹配sshd_config

答案1

似乎有些不对劲。我的全新安装的 20.04.2 LTS 服务器有一个 /etc/ssh/sshd_config

Include /etc/ssh/sshd_config.d/*.conf

这成功包含了 .conf 文件。我使用过的每个 LTS 服务器版本都是如此。我无法评论其他图像。

答案2

正如本文所提到的问题需要注意将 Include 指令放在配置文件中的位置。总之,最安全的做法是将其放在文件顶部,否则最好在指令前面加上指令,Include这样Match all它就不会被无意中作为Host指令的一部分包含进去。

答案3

这似乎是 ubuntu 20.04 上某些版本的 openssh 中的一个错误。

我已在错误报告中写下了我的调查这里

相关内容