एंड्रॉयड

Ssh कमांड

SSH, FTP, Ping, Telnet: Linux Networking Commands Tutorial 12

SSH, FTP, Ping, Telnet: Linux Networking Commands Tutorial 12

विषयसूची:

Anonim

सिक्योर शेल (SSH) एक क्रिप्टोग्राफिक नेटवर्क प्रोटोकॉल है जिसका उपयोग क्लाइंट और सर्वर के बीच एन्क्रिप्टेड कनेक्शन के लिए किया जाता है। Ssh क्लाइंट दूरस्थ मशीन पर SSH सर्वर के लिए एक सुरक्षित कनेक्शन बनाता है। एन्क्रिप्टेड कनेक्शन का उपयोग सर्वर पर कमांड निष्पादित करने के लिए किया जा सकता है, X11 टनलिंग, पोर्ट फ़ॉरवर्डिंग, और बहुत कुछ।

ओपन और कमर्शियल दोनों तरह के एसएसएच क्लाइंट उपलब्ध हैं, जिनमें ओपनएसएसएच सबसे ज्यादा इस्तेमाल किया जाने वाला क्लाइंट है। यह लिनक्स, ओपनबीएसडी, विंडोज, मैकओएस और अन्य सहित सभी प्रमुख प्लेटफार्मों पर उपलब्ध है।

, हम बताएंगे कि किसी दूरस्थ मशीन में लॉगिन करने और कमांड चलाने या अन्य ऑपरेशन करने के लिए ओपनएसएसएच कमांड लाइन क्लाइंट ( ssh ) का उपयोग कैसे करें।

ओपनएसएसएच क्लाइंट स्थापित करना

OpenSSH क्लाइंट प्रोग्राम को ssh कहा जाता है और इसे टर्मिनल से मंगवाया जा सकता है। ओपनएसएसएच क्लाइंट पैकेज ssh कमांड के साथ स्थापित किए गए अन्य एसएसएच उपयोगिताओं जैसे कि scp और sftp भी प्रदान करता है।

लिनक्स पर OpenSSH क्लाइंट स्थापित करना

ओपनएसएसएच क्लाइंट डिफ़ॉल्ट रूप से अधिकांश लिनक्स वितरण पर प्रीइंस्टॉल्ड होता है। यदि आपके सिस्टम में ssh क्लाइंट स्थापित नहीं है, तो आप इसे अपने वितरण के पैकेज मैनेजर का उपयोग करके स्थापित कर सकते हैं।

उबंटू और डेबियन पर ओपनएसएसएच स्थापित करना

sudo apt update sudo apt install openssh-client

CentOS और फेडोरा पर OpenSSH स्थापित करना

sudo dnf install openssh-clients

विंडोज 10 पर ओपनएसएसएच क्लाइंट स्थापित करना

अधिकांश विंडोज उपयोगकर्ता SSH के ऊपर रिमोट मशीन से कनेक्ट करने के लिए पुट्टी का उपयोग कर रहे हैं। हालाँकि, Windows 10 के नवीनतम संस्करणों में OpenSSH क्लाइंट और सर्वर शामिल हैं। दोनों पैकेज जीयूआई या पावरशेल के माध्यम से स्थापित किए जा सकते हैं।

ओपनएसएसएच पैकेज का सटीक नाम जानने के लिए, निम्न कमांड टाइप करें:

Get-WindowsCapability -Online | ? Name -like 'OpenSSH*'

कमांड को कुछ इस तरह लौटना चाहिए:

Name: OpenSSH.Client~~~~0.0.1.0 State: NotPresent Name: OpenSSH.Server~~~~0.0.1.0 State: NotPresent

एक बार जब आप पैकेज का नाम जान लेते हैं तो उसे चलाकर स्थापित करें:

Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0

सफलता पर आउटपुट कुछ इस तरह दिखाई देगा:

Path: Online: True RestartNeeded: False

MacOS पर OpenSSH क्लाइंट स्थापित करना

डिफ़ॉल्ट रूप से स्थापित OpenSSH क्लाइंट के साथ macOS जहाज।

ssh कमांड का उपयोग कैसे करें

एसएसएच के माध्यम से दूरस्थ मशीन में प्रवेश करने में सक्षम होने के लिए निम्नलिखित आवश्यकताओं को पूरा किया जाना चाहिए:

  • SSH सर्वर को दूरस्थ मशीन पर चलना चाहिए। SSH पोर्ट दूरस्थ मशीन फ़ायरवॉल में खुला होना चाहिए। आपको उपयोगकर्ता नाम और दूरस्थ खाते का पासवर्ड पता होना चाहिए। दूरस्थ लॉगिन के लिए खाते में उचित विशेषाधिकार होना चाहिए।

ssh कमांड का मूल सिंटैक्स इस प्रकार है:

ssh:HOST

ssh कमांड का उपयोग करने के लिए अपना टर्मिनल या पावरशेल खोलें और दूरस्थ होस्टनाम के बाद ssh टाइप करें:

ssh ssh.linuxize.com

जब आप पहली बार SSH के माध्यम से रिमोट मशीन से जुड़ते हैं, तो आपको नीचे जैसा संदेश दिखाई देगा।

The authenticity of host 'ssh.linuxize.com (192.168.121.111)' can't be established. ECDSA key fingerprint is SHA256:Vybt22mVXuNuB5unE++yowF7lgA/9/2bLSiO3qmYWBY. Are you sure you want to continue connecting (yes/no)?

प्रत्येक होस्ट में एक अद्वितीय फ़िंगरप्रिंट होता है जिसे ~/.ssh/known_hosts फ़ाइल में संग्रहीत किया जाता है।

रिमोट फिंगरप्रिंट स्टोर करने के लिए yes टाइप करें, और आपको अपना पासवर्ड दर्ज करने के लिए प्रेरित किया जाएगा।

Warning: Permanently added 'ssh.linuxize.com' (ECDSA) to the list of known hosts. [email protected]'s password:

पासवर्ड डालते ही आप रिमोट मशीन में लॉग इन हो जाएंगे।

जब उपयोगकर्ता नाम नहीं दिया जाता है, ssh कमांड वर्तमान सिस्टम लॉगिन नाम का उपयोग करता है।

एक अलग उपयोगकर्ता के रूप में लॉग इन करने के लिए, निम्नलिखित प्रारूप में उपयोगकर्ता नाम और होस्ट निर्दिष्ट करें:

ssh username@hostname

उपयोगकर्ता नाम -l विकल्प के साथ भी निर्दिष्ट किया जा सकता है:

ssh -l username hostname

डिफ़ॉल्ट रूप से, जब कोई पोर्ट नहीं दिया जाता है, तो SSH क्लाइंट पोर्ट 22 पर रिमोट सर्वर से कनेक्ट करने का प्रयास करेगा। कुछ सर्वरों पर, प्रशासक डिफ़ॉल्ट एसएसएच पोर्ट को सर्वर के अतिरिक्त सुरक्षा स्तर को जोड़ने के लिए जोखिम को कम करके बदल रहे हैं। स्वचालित हमले।

गैर-डिफ़ॉल्ट पोर्ट पर कनेक्ट करने के लिए, पोर्ट निर्दिष्ट करने के लिए -p विकल्प का उपयोग करें:

ssh -p 5522 username@hostname

ssh -v username@hostname

वर्बोसिटी के स्तर को बढ़ाने के लिए, -vv या -vvv उपयोग करें।

ssh कमांड कई विकल्पों को स्वीकार करता है।

सभी विकल्पों की पूरी सूची के लिए अपने टर्मिनल में man ssh टाइप करके ssh मैन पेज पढ़ें।

SSH कॉन्फ़िग फ़ाइल

OpenSSH क्लाइंट प्रति-उपयोगकर्ता कॉन्फ़िगरेशन फ़ाइल ( ~/.ssh/config ) में सेट किए गए विकल्पों को पढ़ता है। इस फ़ाइल में, आप जिस भी रिमोट मशीन से जुड़ते हैं, उसके लिए अलग-अलग SSH विकल्प स्टोर कर सकते हैं।

एक नमूना एसएसएच विन्यास नीचे दिखाया गया है:

Host dev HostName dev.linuxize.com User mike Port 4422

जब आप ssh dev टाइप करके ssh क्लाइंट का आह्वान करते हैं तो कमांड ~/.ssh/config फाइल पढ़ेगा और कनेक्शन विवरण का उपयोग करेगा जो कि देव होस्ट के लिए निर्दिष्ट है। इस उदाहरण में, ssh dev निम्नलिखित के बराबर है:

ssh -p 4422 [email protected]

अधिक जानकारी के लिए, SSH कॉन्फ़िग फ़ाइल पर लेख देखें।

सार्वजनिक कुंजी प्रमाणीकरण

SSH प्रोटोकॉल विभिन्न प्रमाणीकरण तंत्रों का समर्थन करता है।

सार्वजनिक कुंजी-आधारित प्रमाणीकरण तंत्र आपको अपना पासवर्ड टाइप किए बिना दूरस्थ सर्वर में लॉग इन करने की अनुमति देता है।

यह विधि क्रिप्टोग्राफ़िक कुंजियों की एक जोड़ी बनाकर काम करती है जो प्रमाणीकरण के लिए उपयोग की जाती हैं। निजी कुंजी क्लाइंट डिवाइस पर संग्रहीत होती है, और सार्वजनिक कुंजी को प्रत्येक दूरस्थ सर्वर पर स्थानांतरित किया जाता है जिसे आप लॉग इन करना चाहते हैं। दूरस्थ सर्वर को कुंजी प्रमाणीकरण स्वीकार करने के लिए कॉन्फ़िगर किया जाना चाहिए।

ssh-keygen -t rsa -b 4096 -C "[email protected]"

आपको एक सुरक्षित पासफ़्रेज़ टाइप करने के लिए कहा जाएगा। आप चाहे तो पासफ्रेज का उपयोग कर सकते हैं।

एक बार जब आप अपनी कुंजी जोड़ी लेते हैं, तो सार्वजनिक कुंजी को दूरस्थ सर्वर पर कॉपी करें:

ssh-copy-id username@hostname

दूरस्थ उपयोगकर्ता पासवर्ड दर्ज करें, और सार्वजनिक कुंजी को दूरस्थ उपयोगकर्ता authorized_keys फ़ाइल में जोड़ा जाएगा।

एक बार कुंजी अपलोड होने के बाद, आप पासवर्ड के लिए संकेत दिए बिना दूरस्थ सर्वर में प्रवेश कर सकते हैं।

कुंजी-आधारित प्रमाणीकरण सेट करके, आप लॉगिन प्रक्रिया को सरल बना सकते हैं और समग्र सर्वर सुरक्षा बढ़ा सकते हैं।

पोर्ट फॉरवार्डिंग

SSH टनलिंग या SSH पोर्ट फ़ॉरवर्डिंग एक क्लाइंट और सर्वर मशीन के बीच एक एन्क्रिप्टेड SSH कनेक्शन बनाने की एक विधि है जिसके माध्यम से सर्विस पोर्ट्स को रिले किया जा सकता है।

SSH अग्रेषण सेवाओं के नेटवर्क डेटा को ट्रांसपोर्ट करने के लिए उपयोगी है, जो कि वीएनसी या एफ़टीपी जैसे अनएन्क्रिप्टेड प्रोटोकॉल का उपयोग करते हैं, जो भू-प्रतिबंधित सामग्री तक पहुँचते हैं या मध्यवर्ती फायरवॉल को दरकिनार करते हैं। मूल रूप से, आप किसी भी टीसीपी पोर्ट को अग्रेषित कर सकते हैं और सुरक्षित एसएसएच कनेक्शन पर ट्रैफिक को टनल कर सकते हैं।

एसएसएच पोर्ट अग्रेषण के तीन प्रकार हैं:

स्थानीय पोर्ट अग्रेषण

स्थानीय पोर्ट फ़ॉरवर्डिंग आपको क्लाइंट होस्ट से SSH सर्वर होस्ट तक और फिर गंतव्य होस्ट पोर्ट से कनेक्शन अग्रेषित करने की अनुमति देता है।

ssh क्लाइंट के लिए -L विकल्प पास पास स्थानीय पोर्ट बनाने के लिए:

ssh -L LOCAL_PORT:DESTINATION_HOST:DESTINATION_PORT -N -f username@hostname

-F विकल्प ssh कमांड को बैकग्राउंड में चलने के लिए कहता है और -N रिमोट कमांड को निष्पादित नहीं करता है।

रिमोट पोर्ट अग्रेषण

रिमोट पोर्ट फ़ॉरवर्डिंग स्थानीय पोर्ट फ़ॉरवर्डिंग के विपरीत है। यह सर्वर होस्ट से क्लाइंट होस्ट के लिए और फिर गंतव्य होस्ट पोर्ट के लिए एक पोर्ट को आगे करता है।

-L विकल्प ssh को एक दूरस्थ पोर्ट अग्रेषण बनाने के लिए कहता है:

ssh -R REMOTE_PORT:DESTINATION:DESTINATION_PORT -N -f username@hostname

डायनेमिक पोर्ट फ़ॉरवर्डिंग

डायनेमिक पोर्ट फ़ॉरवर्डिंग एक SOCKS प्रॉक्सी सर्वर बनाता है जो पोर्ट की एक सीमा में संचार की अनुमति देता है।

डायनेमिक पोर्ट फ़ॉरवर्डिंग (SOCKS) बनाने के लिए -D क्लाइंट के लिए -D विकल्प पास करें:

ssh -D LOCAL_PORT -N -f username@hostname

अधिक विस्तृत जानकारी और चरण-दर-चरण निर्देश के लिए, SSH टनलिंग (पोर्ट अग्रेषण) कैसे सेट करें पर लेख देखें।

निष्कर्ष

SSH के माध्यम से एक दूरस्थ सर्वर से कनेक्ट करने के लिए दूरस्थ उपयोगकर्ता नाम और hostname ( ssh username@hostname ) के बाद ssh कमांड का उपयोग करें।

दूरस्थ सर्वर के प्रबंधन के लिए ssh कमांड का उपयोग करना आवश्यक है।

ssh टर्मिनल