Sshd ने अपनी कॉन्फ़िग फ़ाइल (ssh कनेक्शन को मारे बिना) को फिर से कैसे पढ़ा है?


8

/etc/sshd_configमौजूदा ssh कनेक्शनों को मारे बिना, मैं इसकी कॉन्फ़िगरेशन फ़ाइल ( ) को फिर से पढ़ने के लिए ssh सर्वर कैसे प्राप्त कर सकता हूं ?

संपादित करें: यदि मैं चलाता kill -HUP <SSHD_PID>हूं तो मैं कनेक्शन को मार देता हूं ।


क्या आपने हैंगअप सिग्नल भेजने की कोशिश की है kill -HUP <PID of sshd>:? के अनुसार man sshd: sshd rereads its configuration file when it receives a hangup signal, SIGHUP। (आप के sshdसाथ PID पा सकते हैं ps -ef|grep sshd। यदि एक से अधिक sshdप्रक्रिया है, तो HUPउन सभी को भेजें ।)
jaume

(मेरे नवीनतम संपादन देखें)
१२:३३

6
हां, आप सही हैं, यदि आप एचयूपी एक sshdप्रक्रिया है जिसमें एक खुला कनेक्शन है, sshdसमाप्त हो जाता है। हालांकि, मुख्य को HUP संकेत भेजना sshd, अर्थात, sshdप्रत्येक आने वाले कनेक्शन के लिए एक नया डेमॉन बनाने वाले माता-पिता का वांछित प्रभाव होगा। OS X पर, हालांकि, कोई मुख्य नहीं है sshd: विकल्प के माध्यम से sshdशुरू किया launchdजाता launchproxyहै -i, जो बताता है sshdकि यह अनुरोध से inetdशुरू होने पर और से शुरू हुआ है launchd। इस सेटअप के साथ, हर SSH कनेक्शन sshdको उसकी कॉन्फ़िगरेशन फ़ाइल के नवीनतम संस्करण के साथ नए सिरे से कॉन्फ़िगर किया जाना शुरू हो जाता है ।
19

जवाबों:


5

sshd "re-read" नहीं है, यह कॉन्फ़िगरेशन फ़ाइल है, यह स्वयं को पुनरारंभ करता है (मैन sshd (8) का संदर्भ लें), हालाँकि, यदि आप उन सभी के हिस्से में SITEUP भेजे तो यह बच्चे / कनेक्शन को नहीं मारना चाहिए। जब आप sshd के बारे में बात कर रहे हैं जो 22 पोर्ट को बांधता है, जैसा कि लिनक्स / फ्रीबीएसडी / आदि के साथ "सामान्य" है। [MacOSX प्रकार मार्ग का अनुसरण करने के लिए कुछ अपवाद और sysadmin कारण हैं]

HOWEVER MacOSX ने पोर्ट 22 (मेरी 10.10.4 मशीन से) को सुनने और संभालने वाले के रूप में लॉन्च किया है:

BlackYos:~ hvisage$ sudo lsof -i :22
Password:
COMMAND  PID    USER   FD   TYPE             DEVICE SIZE/OFF NODE NAME
launchd    1    root   57u  IPv4 0xdb59a664e4b34941      0t0  TCP blackyos:ssh->hvs:39093 (ESTABLISHED)
launchd    1    root   58u  IPv4 0xdb59a664e4b34941      0t0  TCP blackyos:ssh->hvs:39093 (ESTABLISHED)
launchd    1    root   62u  IPv6 0xdb59a664c78cd671      0t0  TCP *:ssh (LISTEN)
launchd    1    root   66u  IPv4 0xdb59a664c78d2e21      0t0  TCP *:ssh (LISTEN)
launchd    1    root   67u  IPv6 0xdb59a664c78cd671      0t0  TCP *:ssh (LISTEN)
launchd    1    root   68u  IPv4 0xdb59a664c78d2e21      0t0  TCP *:ssh (LISTEN)
ssh     1262 hvisage    3u  IPv4 0xdb59a664e59313b1      0t0  TCP blackyos:51628->hvs:ssh (ESTABLISHED)
sshd    1272    root    4u  IPv4 0xdb59a664e4b34941      0t0  TCP blackyos:ssh->hvs:39093 (ESTABLISHED)
sshd    1272    root    5u  IPv4 0xdb59a664e4b34941      0t0  TCP blackyos:ssh->hvs:39093 (ESTABLISHED)
sshd    1274 hvisage    4u  IPv4 0xdb59a664e4b34941      0t0  TCP blackyos:ssh->hvs:39093 (ESTABLISHED)
sshd    1274 hvisage    5u  IPv4 0xdb59a664e4b34941      0t0  TCP blackyos:ssh->hvs:39093 (ESTABLISHED)

यह लॉन्च किया गया है जिसे macosx पर "पुनरारंभ" करने की आवश्यकता हो सकती है, या sshd के लिए सुनने के लिए अलग-अलग पोर्ट के बारे में बताया जा सकता है, क्योंकि लॉन्च प्रत्येक पोर्ट 22 कनेक्शन के लिए एक नया sshd स्पॉन करेगा जो इसमें आता है।

निम्नलिखित जांचें:

BlackYos:~ hvisage$ sudo ps -ef |grep -i ssh
  501  1263     1   0  6:46PM ??         0:00.06 /usr/bin/ssh-agent -l
    0  1272     1   0  6:46PM ??         0:00.40 sshd: hvisage [priv]
  501  1274  1272   0  6:46PM ??         0:00.03 sshd: hvisage@ttys004
  501  1262   570   0  6:46PM ttys001    0:00.05 ssh -v hvs
  501  1303  1275   0  6:50PM ttys004    0:00.00 grep -i ssh
BlackYos:~ hvisage$

मैंने अपने राउटर को वापस भेज दिया है और इस मुद्दे को प्रदर्शित करने के लिए, और आप देखेंगे कि दो प्रक्रियाएं पहले से ही मेरे स्वामित्व में हैं। इसकी तुलना लिनक्स सिस्टम (मेरे राउटर) से करें जहां आप तीसरे "वास्तविक" sshd को देखेंगे, जो रूट के स्वामित्व में है:

hvisage@hvs:~$ ps -ef |grep -i ssh
root      4053     1  0 Jul11 ?        00:04:22 /usr/sbin/sshguard -i /var/run/sshguard.pid -l /var/log/auth.log -w /etc/sshguard/whitelist -a 40 -p 420 -s 1200
root     16244 30219  0 18:46 ?        00:00:00 sshd: hvisage [priv]
hvisage  16249 16244  0 18:46 ?        00:00:00 sshd: hvisage@pts/0
hvisage  16563 16250  0 18:52 pts/0    00:00:00 grep -i ssh
root     30219     1  0 Aug09 ?        00:00:00 /usr/sbin/sshd
hvisage@hvs:~$

1

निम्नलिखित पंक्ति पहले कॉन्फ़िगरेशन की जांच करती है और सभी को ध्यान में रखते हुए मुख्य प्रक्रिया का पीआईडी ​​प्राप्त करती है (लिनक्स, जेडश में परीक्षण):

if /usr/sbin/sshd -t; then kill -HUP `ps aux | grep "/usr/sbin/sshd" | grep -v grep | awk '{ print $2 }'`; fi

MacOS पर काम नहीं करता है ... कोई sshdप्रक्रिया नहीं है।
प्रति लूंडबर्ग

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.