我注意到,当我运行sshd -T
获取 OpennSSH sshd 配置的运行时值时,它与 /etc/ssh/sshd_config 文件本身的值不同。
我正在努力理解如何分别操作它们以及它们之间的关系。如果我更改了 /etc/ssh/sshd_config 中的内容,那么我该如何在 sshd -T 的输出中反映这些更改?
答案1
OpenSSH sshd 允许管理员在配置文件中设置配置设置(/etc/ssh/sshd_config
默认情况下),并在启动命令行上使用sshd -oOPTION1=value -oOPTION2=value
。
RHEL 9 及其衍生产品使用命令行选项构造来调整加密设置,以强制执行系统范围的加密策略sshd
并有效忽略在 中配置的任何加密设置/etc/ssh/sshd_config
。
仅当您选择退出sshd
系统范围的加密策略(通过编辑/etc/sysconfig/sshd
和取消注释该行# CRYPTO_POLICY=
)后,有效的 sshd 配置才会完全由 的内容决定/etc/ssh/sshd_config
。
这也许可以解释你的观察结果。
答案2
当你运行 sshd -T 时,它会从 /etc/ssh/sshd_config 读取配置,并打印出当服务器使用这些设置启动时将使用的有效配置
可能是 /etc/ssh/sshd_config.d/* 中也有配置,导致看到不同的配置。(其中的配置包含在 sshd_config 中Include /etc/ssh/sshd_config.d/*.conf
)
你可以grep -E -h -v '^#|^\s*$' /etc/ssh/sshd_config /etc/ssh/sshd_config.d/*.conf
检查一下