Câu hỏi Làm cách nào để kiểm tra xem tệp cấu hình đã được đọc chưa?


Có vẻ như những sửa đổi đối với tôi /etc/ssh/sshd_config tập tin không được chọn bởi SSH daemon. Đối với mục đích thử nghiệm, tôi đã bao gồm DenyUsers *, đã làm service ssh restartvà thậm chí khởi động lại toàn bộ hệ thống. Nhưng tôi vẫn có thể ssh từ xa.

Làm thế nào tôi có thể kiểm tra xem /etc/ssh/sshd_config tệp được đọc bởi sshd?


4
2017-11-01 07:55


gốc




Các câu trả lời:


Nếu tôi không chắc chắn nếu một chương trình đọc một tệp cấu hình cụ thể (hoặc theo thứ tự nào), tôi cố gắng theo dõi các syscalls mở với strace. Để làm điều này, hãy dừng trình nền ssh. Sau đó, khởi động nó theo cách thủ công trong terminal bằng cách:

strace -e open -ostrace.out /usr/sbin/sshd

Sau khi nó đã bắt đầu, bạn nên có một tập tin trong thư mục làm việc hiện tại của bạn được gọi là strace.out. Trong trường hợp của tôi nó trông như thế này (đầu ra bị tước):

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)

Với bài kiểm tra này, tôi có thể đảm bảo sshd đọc của tôi /etc/ssh/sshd_config. Trong mục cuối cùng bạn có thể thấy rằng tập tin này không được tìm thấy trên hệ thống của tôi (-1).


4
2017-11-01 08:48



Điều đó đã giúp rất nhiều. Nó chỉ cho tôi một lỗi đáng xấu hổ mà tôi đã sửa đổi /etc/ssh/ssh_config thay vì /etc/ssh/sshd_config. Cảm ơn. - user210161