我正在实现一个基本的部署脚本,对于 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)。所有全局指令仅在启动时处理,全局指令仅处理一次。该设置将保持在第一次出现时的状态。
另一方面,两次使用相同的指令可能会导致误解。
请重新考虑解析文件。如果适用,您还可以替换整个文件。
TL;DR 是的Debian 及其衍生版本支持早期包含文件。
Debian和Ubuntu在配置文件Include
中早期就有“ ”指令:ssh
sshd
/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)