验证 sshd 配置

Jua*_*blo 27 ssh configuration

我如何验证sshd?

例如,我想确保设置并应用这些设置:

AllowUsers user1 user2 
PasswordAuthentication no
PermitRootLogin no
Run Code Online (Sandbox Code Playgroud)

是手动验证文件内容的唯一方法sshd_config,还是我可以探测sshd以确保?

Jos*_*din 33

有一个扩展测试模式,使用命令行选项调用-T,它可以执行此操作。例如:

% sudo sshd -T | egrep -i 'allowusers|passwordauth|permitroot'
permitrootlogin yes
passwordauthentication yes
Run Code Online (Sandbox Code Playgroud)

自 2008 年以来,该选项已存在于 Portable OpenSSH 中,参见。 提交 e7140f2。这是与 2008 年 7 月制作的 5.1p1 一起发布的,参见。5.1 的发行说明,因此它存在于当今几乎所有支持的 OpenSSH 服务器安装中。

  • 但是请注意,这将显示来自 `/etc/ssh/sshd_config` 文件的默认设置 + 设置。文件中的设置实际上可能还没有激活,直到 `sshd` 使用类似 `/etc/init.d/ssh reload` 或系统上的等效内容重新加载它们。 (3认同)
  • 您需要使用 `sshd -T -C user=user1` 来显示 user1 的有效配置,并对 `user2` 重复此操作,并对不同的内容重复,例如 `user=nobody` 来测试您的配置,因为 `匹配`规则。 (3认同)
  • @mivk 好点,但这对于课程来说几乎是标准的,因为我们通常在进行更改之后使用这些类型的命令,但在实际应用它们之前,因为我们想验证会发生什么。例如,`apache2ctl -S` 的行为方式相同。 (2认同)

gpa*_*ent 6

sshd 的配置通常在以下文件中找到:/etc/ssh/sshd_config.

要查询运行时配置,您可以使用扩展测试模式sshd -T,该模式还允许您测试客户端的设置匹配。