如何检查是否已读取配置文件?

use*_*161 5 sshd

/etc/ssh/sshd_configSSH 守护进程似乎没有发现对我的文件的修改。出于测试目的,我包含了一个DenyUsers *、 did service ssh restart,甚至重新启动了整个系统。但我仍然可以从远程 ssh。

如何检查/etc/ssh/sshd_config文件是否被读取sshd

cha*_*aos 5

如果我不确定程序是否读取特定的配置文件(或按哪个顺序),我会尝试使用strace. 为此,请停止 ssh 守护进程。然后通过以下方式在终端中手动启动它:

strace -e open -ostrace.out /usr/sbin/sshd
Run Code Online (Sandbox Code Playgroud)

启动后,您当前的工作目录中应该有一个名为strace.out. 在我的情况下,它看起来像这样(输出被剥离):

open("/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3
...
many libraries
...
open("/proc/filesystems", O_RDONLY)     = 3
open("/dev/null", O_RDWR)               = 3
open("/usr/lib/ssl/openssl.cnf", O_RDONLY) = 3
open("/etc/ssh/sshd_config", O_RDONLY)  = 3 <--- here sshd_config was opened
open("/dev/urandom", O_RDONLY|O_NOCTTY|O_NONBLOCK) = 3
open("/etc/gai.conf", O_RDONLY|O_CLOEXEC) = 3
open("/etc/nsswitch.conf", O_RDONLY|O_CLOEXEC) = 3
open("/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3
...
open("/etc/passwd", O_RDONLY|O_CLOEXEC) = 3
...
ssh keys
...
open("/etc/ssh/blacklist.ECDSA-256", O_RDONLY) = -1 ENOENT (No such file or directory)
Run Code Online (Sandbox Code Playgroud)

通过这个测试,我可以确保sshd读取我的/etc/ssh/sshd_config. 在最后一个条目中,您可以看到在我的系统上找不到此文件 (-1)。

  • 那帮助很大。它向我指出了一个令人尴尬的错误,我修改了 `/etc/ssh/ssh_config` 而不是 `/etc/ssh/sshd_config`。谢谢。 (3认同)