SSH एक लोकप्रिय और प्रभावी प्रोटोकॉल है जो आपको अपने स्थानीय मशीन से रिमोट होस्ट में लॉग-इन करने और मैनेज करने की अनुमति देता है। यह गाइड आपको विभिन्न कमांड्स के माध्यम से ले जाता है जिनका उपयोग आप रिमोट होस्ट पर सक्रिय SSH कनेक्शन की जांच के लिए कर सकते हैं।
नोट: सिस्टम कॉन्फ़िगरेशन के आधार पर, जिन कमांड्स पर हम चर्चा करने जा रहे हैं, उनमें से कुछ के लिए आपको रूट या sudo विशेषाधिकार रखने की आवश्यकता हो सकती है।
1. WHO कमांड का उपयोग करना
सक्रिय SSH कनेक्शन दिखाने के लिए आप जिस पहली कमांड का उपयोग कर सकते हैं वह है who कमांड।
who कमांड का उपयोग यह दिखाने के लिए किया जाता है कि वर्तमान में सिस्टम में कौन लॉग-इन है। यह हमें कनेक्टेड यूज़र्स और उनके स्रोत IP एड्रेस देखने की अनुमति देता है।
who कमांड का उपयोग करने के लिए, बिना किसी पैरामीटर के बस who दर्ज करें।
उपरोक्त आउटपुट में, आप एक debian यूज़र को tty के माध्यम से कनेक्टेड और एक रिमोट IP एड्रेस से दो SSH सत्र देख सकते हैं।
आप who कमांड में पैरामीटर भी जोड़ सकते हैं ताकि विस्तृत जानकारी दिखाई दे।
उदाहरण के लिए, कनेक्टेड यूज़र्स के लिए अंतिम बूट दिखाने के लिए, -b -u फ्लैग जोड़ें:
who -b -u
who कमांड अनुकूलित परिणाम प्राप्त करने के लिए अधिक विकल्प प्रदान करती है। अधिक जानने के लिए मैनुअल पेज देखें।
2. W कमांड का उपयोग करना
सर्वर से कनेक्टेड विभिन्न SSH सत्रों और यूज़र्स की स्थिति दिखाने के लिए आप जिस अगली कमांड का उपयोग कर सकते हैं वह है w कमांड। who कमांड के विपरीत, w कमांड प्रत्येक यूज़र के लिए चल रही प्रक्रियाओं के बारे में अधिक जानकारी देती है।
इसके अतिरिक्त, w कमांड आपको निष्क्रिय SSH कनेक्शन के बारे में जानकारी देगी, जो तब बहुत मददगार होता है जब आपको उन्हें समाप्त करने की आवश्यकता होती है।
यदि आप बिना किसी अन्य विकल्प के कमांड चलाते हैं, तो आपको नीचे दिए गए जैसा आउटपुट मिलना चाहिए।
उपरोक्त उदाहरण में, w कमांड विस्तृत जानकारी देती है, जैसे यूज़रनेम, TTY विधि, स्रोत IP एड्रेस, लॉग-इन का समय, निष्क्रिय समय और अधिक।
who कमांड की तरह, आप w कमांड का उपयोग विभिन्न पैरामीटर्स के साथ भी कर सकते हैं। नीचे दी गई तालिका w कमांड के साथ उपयोग किए जा सकने वाले विभिन्न पैरामीटर्स को दिखाती है।
| पैरामीटर | यह क्या करता है |
|---|---|
| -h, --no-header | टर्मिनल को हेडर प्रिंट न करने के लिए सूचित करता है |
| -u, --no-current | टर्मिनल को यूज़रनेम को अनदेखा करने के लिए प्रेरित करता है क्योंकि यह कनेक्टेड यूज़र्स की प्रक्रियाओं और CPU समय को प्रदर्शित करता है |
| -s, --short | टर्मिनल को संक्षिप्त आउटपुट प्रिंट करने के लिए कहता है - लॉग-इन समय, JCPU और PCPU को छोड़कर |
| -f, --from | प्रिंट आउटपुट के FROM विकल्प को इनेबल/डिसेबल करता है |
| --help | विभिन्न w कमांड विकल्पों/पैरामीटर्स को प्रदर्शित करता है और बाहर निकलता है |
| -v, --version | संस्करण के बारे में जानकारी प्रदर्शित करता है और बाहर निकलता है |
| user | परिणामों को निर्दिष्ट यूज़र तक सीमित करता है |
नीचे दिया गया उदाहरण w कमांड को -s और -f पैरामीटर्स के साथ उपयोग करते हुए FROM भाग को छोटा करके वर्तमान SSH सत्रों का संक्षिप्त आउटपुट दिखाता है।
3. Last कमांड का उपयोग करना
आप सभी कनेक्टेड SSH सत्रों को दिखाने के लिए last कमांड का भी उपयोग कर सकते हैं। last कमांड अंतिम लॉग-इन यूज़र्स की सूची दिखाती है।
यह नामित फ़ाइल की जांच करके काम करता है। उदाहरण के लिए, "/var/log/wtmp" फ़ाइल के निर्माण के बाद से लॉग-इन और लॉग-आउट करने वाले सभी यूज़र्स को दिखाता है। कमांड क्लाइंट और सर्वर के बीच बनाए गए SSH सत्रों के बारे में जानकारी भी देता है।
last कमांड के लिए सामान्य सिंटैक्स है:
last
यहां एक उदाहरण है।
चूंकि last कमांड से आउटपुट विशाल है, हम केवल सक्रिय सत्र दिखाने के लिए grep कमांड का उपयोग कर सकते हैं।
उदाहरण के लिए:
last | grep still
आप last कमांड से आउटपुट को विस्तृत जानकारी दिखाने के लिए भी संशोधित कर सकते हैं।
उदाहरण के लिए, पूर्ण यूज़रनेम और डोमेन दिखाने के लिए, हम -w फ्लैग का उपयोग कर सकते हैं।
last -w
last कमांड कई विकल्पों का समर्थन करती है। यहां last कमांड के लिए सबसे अधिक उपयोग किए जाने वाले विकल्प हैं।
| पैरामीटर | यह क्या करता है |
|---|---|
| -a, --hostlast | अंतिम कॉलम में होस्टनेम प्रदर्शित करता है |
| -d, --dns | Linux सभी रिमोट होस्ट का होस्टनेम और IP एड्रेस स्टोर करता है। यह पैरामीटर IP को होस्टनेम में बदल देता है |
| -file, --file | last कमांड को /var/log/wtmp के अलावा एक नामित फ़ाइल का उपयोग करने के लिए सूचित करता है |
| -F, --fulltimes | last को सभी लॉग-इन और लॉग-आउट तिथियों और समय को प्रिंट करने के लिए प्रेरित करता है |
| -i, --ip | –dns के समान, सिवाय इसके कि होस्ट का होस्टनेम दिखाने के बजाय, यह IP नंबर दिखाता है |
4. Netstat कमांड का उपयोग करना
हम netstat कमांड को नहीं भूल सकते। Netstat का उपयोग सभी नेटवर्क कनेक्शन, नेटवर्क इंटरफेस, रूटिंग टेबल और अधिक दिखाने के लिए किया जाता है।
आप अपने Linux सर्वर पर स्थापित या कनेक्टेड SSH सत्रों के लिए फ़िल्टर करने के लिए netstat कमांड का भी उपयोग कर सकते हैं:
netstat | grep ssh
उपरोक्त कमांड केवल स्थापित SSH कनेक्शन दिखाता है।
सभी कनेक्शन दिखाने के लिए जिसमें लिस्टनिंग और नॉन-लिस्टनिंग शामिल हैं, हम -a फ्लैग का उपयोग कर सकते हैं:
nestat -a | grep ssh
5. SS कमांड का उपयोग करना
यदि आप कनेक्टेड SSH सत्रों के बारे में अधिक जानकारी जानना चाहते हैं, तो आप ss कमांड का उपयोग कर सकते हैं, जो सॉकेट डेटा दिखाता है, जिससे यह netstat के समान होता है।
उदाहरण के लिए, हम ss कमांड के आउटपुट को -a विकल्प (सभी) के साथ grep कर सकते हैं ताकि सभी कनेक्टेड SSH सत्र दिखाए जा सकें। उसके लिए सिंटैक्स है:
ss -a | grep ssh
उपरोक्त आउटपुट रिमोट होस्ट पर सभी SSH कनेक्शन प्रदर्शित करता है। इसमें SSHD डेमन शामिल होगा।
स्थापित SSH कनेक्शन के लिए फ़िल्टर करने के लिए, आप आउटपुट को वापस grep पर पाइप कर सकते हैं।
ss -a | grep ssh | grep ESTAB
उपरोक्त कमांड केवल सक्रिय SSH कनेक्शन वापस करेंगे।
ss कमांड में टन अन्य विकल्प भी हैं जिनका उपयोग आप सक्रिय सर्वर कनेक्शन के बारे में विभिन्न चीजें जानने के लिए कर सकते हैं। उदाहरण के लिए, आप सॉकेट जानकारी के बारे में अधिक दिखाने के लिए -e फ्लैग का उपयोग कर सकते हैं।
निष्कर्ष
अनधिकृत SSH लॉग-इन के लिए अपने रिमोट होस्ट की निगरानी करते रहना और आवश्यक कार्रवाई करना अच्छा अभ्यास है, जैसे अपने सर्वर को सुरक्षित करना या पासवर्ड प्रमाणीकरण अक्षम करना। इस बीच, आप अपने PC पर बाहरी कनेक्शन की अनुमति देने के लिए रिवर्स SSH टनलिंग का भी उपयोग कर सकते हैं।