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

我正在实施一个基本的部署脚本和sshd_config唯一的变化,我需要做的是PermitRootLogin是没有密码的PermitRootLogin。 我已经阅读了文档,他们没有提到这一点,但这并不是说这是不可能的。

我可以指定第二个PermitRootLogin吗? 即回声“PermitRootLogin无密码”>> / etc / ssh / sshd_config

如果是这样,这是安全的吗?

基于评论的更新:

1)我知道我可以parsing文件并更改variables。 我的问题仍然存在。

没有。

您可以通过添加行并检查是否可以login来简单地进行testing。然后,您可以注释掉第一个事件,重新启动服务并再次testing。

原因: OpenSSH servconf.c在第991-1905行(对于7.6p1)具有函数process_server_config_line() )。 所有全局指令仅在启动时处理,全局指令仅处理一次。 该设置将保持原来的状态。

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

请重新考虑parsing文件。 如果适用,您也可以replace整个文件。

不,大多数设置只会使用它遇到的第一个值; X11Forwarding设置是一个简单的testing。 这就是说,你可能能够利用每个用户的覆盖设置来允许相同的事情。 这些通常被标记在底部,所以你的追加目标会更好。

这就是说,正如其他人提到的sed将是一个更干净的解决scheme。

 sed -i 's/PermitRootLogin yes/PermitRootLogin without-password/g' /etc/ssh/sshd_config