我可以用重复的设置覆盖 sshd_config 中的设置吗

Nei*_*ers 10 ssh

我正在实现一个基本的部署脚本,对于 sshd_config,我需要做的唯一更改是 PermitRootLogin yes 到 PermitRootLogin without-password。我已经通读了文档,他们没有提到这一点,但这并不是说这是不可能的。

我可以指定第二个 PermitRootLogin 吗?即 echo 'PermitRootLogin without-password' >> /etc/ssh/sshd_config

如果是这样,这安全吗?

基于评论的更新:

1)我知道我可以解析文件并更改变量。我的问题仍然存在。

Esa*_*nen 18

不。

您可以通过添加该行并检查您是否可以登录来简单地测试它。然后您可以注释掉第一次出现,重新启动服务并再次测试。

原因: OpenSSHservconf.c有功能

  • process_server_config_line() 在第 1200-2171 行(对于 7.9p1)
  • 重构为调用process_server_config_line_depth()1260-2371 行(对于 8.3p1)。

所有全局指令仅在启动时处理,全局指令仅处理一次。该设置将保持在第一次出现时的状态。

另一方面,两次使用相同的指令可能会导致误解。

请重新考虑解析文件。如果适用,您还可以替换整个文件。


Con*_*ino 6

TL;DR 是的Debian 及其衍生版本支持早期包含文件。

DebianUbuntu在配置文件Include中早期就有“ ”指令:sshsshd

/etc/ssh/ssh_config:19:Include /etc/ssh/ssh_config.d/*.conf
/etc/ssh/sshd_config:13:Include /etc/ssh/sshd_config.d/*.conf
Run Code Online (Sandbox Code Playgroud)

我同意之前的答案,首先找到的第一个值优先Include处理目录文件。

echo PermitRootLogin without-password > /etc/ssh/sshd_config.d/PermitRootLogin.conf
Run Code Online (Sandbox Code Playgroud)