Кажется, что модификации моего файла /etc/ssh/sshd_config
не подобраны демоном SSH. В целях тестирования я включил DenyUsers *
, сделал service ssh restart
и даже перезагрузил всю систему. Но я все еще могу ssh из удаленного.
Как проверить, что файл /etc/ssh/sshd_config
прочитан sshd
?
Если я не уверен, что программа читает определенный файл конфигурации (или в каком порядке), я пытаюсь отследить открытые системные вызовы с помощью strace
. Для этого остановите демон ssh. Затем запустите его вручную в терминале с помощью:
strace -e open -ostrace.out /usr/sbin/sshd
После его запуска у вас должен быть файл в текущем рабочем каталоге с именем 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)
С помощью этого теста я могу убедиться, что sshd
читает мои /etc/ssh/sshd_config
. В последней записи вы можете видеть, что этот файл не найден в моей системе (-1).