我/etc/ssh/sshd_config
以这一行结束:
Include sshd_config.d/sftp_users.conf
但是,不包括该文件的内容。通过绝对路径或使用 glob 包括在内不会改变任何内容。
为了说服自己它真的没有被阅读,我 strace'd sshd (下面的输出)。绝对不会被阅读。Include
然而,据说支持自7.3p1以来就存在,并且显然是在 2020 年 2 月 1 日(2020 年 3 月 31 日之前)承诺的。
虽然我可以将包含的文件放在 mainsshd_config
中,但将自定义内容推送到sshd_config.d/*conf
.
有什么建议为什么这不起作用?
这是一个 ubuntu 20.04 图像,fwiw。
更新
使用-ddd
sshd 选项,
/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
本身就匹配。
似乎有些不对劲。我全新安装的 20.04.2 LTS 服务器有一个 /etc/ssh/sshd_config
这包括 .conf 文件成功。我用过的每个版本的 LTS Server 都是一样的。我无法评论其他图片。
这似乎是 ubuntu 20.04 上某些版本的 openssh 中的错误。
我在这里的错误报告中写下了我的调查。
正如在这个问题中提到的,需要小心将 Include 指令放在配置文件中的位置。总而言之,将它放在文件的顶部是最安全的,否则最好在指令前面加上
Include
指令,Match all
这样它就不会无意中被包含在Host
指令中。