Se eu não tiver certeza se um programa lê um arquivo de configuração específico (ou em qual ordem), tento rastrear os syscalls abertos com strace
. Para fazer isso, pare o daemon ssh. Em seguida, inicie-o manualmente no terminal:
strace -e open -ostrace.out /usr/sbin/sshd
Depois de iniciado, você deve ter um arquivo em seu diretório de trabalho atual chamado strace.out
. No meu caso, parecia assim (saída despojada):
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)
Com esse teste, posso garantir que sshd
leia meu /etc/ssh/sshd_config
. Na última entrada você pode ver que este arquivo não é encontrado no meu sistema (-1).