ssh -T 运行时配置和 OpenSSH 的 /etc/ssh/sshd_config 之间有什么关系?

ssh -T 运行时配置和 OpenSSH 的 /etc/ssh/sshd_config 之间有什么关系?

我注意到,当我运行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

请参阅背景https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/9/html/security_hardening/using-the-system-wide-cryptographic-policies_security-hardening

仅当您选择退出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检查一下

相关内容