सवाल मैं कैसे जांचूं कि कॉन्फ़िगरेशन फ़ाइल पढ़ी गई है?


ऐसा लगता है कि मेरे लिए संशोधन /etc/ssh/sshd_config फाइल एसएसएच डिमन द्वारा नहीं उठाई जाती है। परीक्षण उद्देश्यों के लिए, मैंने एक शामिल किया DenyUsers *, किया service ssh restart, और यहां तक ​​कि पूरे सिस्टम को रिबूट किया। लेकिन मैं अभी भी रिमोट से ssh कर सकते हैं।

मैं इसे कैसे देख सकता हूं /etc/ssh/sshd_config फ़ाइल द्वारा पढ़ा जाता है sshd?


4
2017-11-01 07:55


मूल




जवाब:


अगर मुझे यकीन नहीं है कि कोई प्रोग्राम एक विशिष्ट कॉन्फ़िगरेशन फ़ाइल (या किस क्रम में) पढ़ता है, तो मैं खुले सिस्कोल का पता लगाने की कोशिश करता हूं strace। ऐसा करने के लिए एसएसएच डिमन बंद करो। फिर टर्मिनल में इसे मैन्युअल रूप से प्रारंभ करें:

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) पर नहीं मिली है।


4
2017-11-01 08:48



इससे बहुत मदद मिली। यह मुझे शर्मनाक त्रुटि के लिए इंगित किया कि मैंने संशोधित किया /etc/ssh/ssh_config के बजाय /etc/ssh/sshd_config। धन्यवाद। - user210161