Linux में SSH ProxyJump और SSH ProxyCommand का उपयोग कैसे करें


संक्षिप्त: इस मार्गदर्शिका में, हम प्रदर्शित करते हैं कि जंप सर्वर से कनेक्ट करते समय SSH ProxyJump और SSH ProxyCommand कमांड का उपयोग कैसे करें।

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

SSH ProxyJump और ProxyCommand कमांड यह निर्धारित करते हैं कि क्लाइंट जंप सर्वर, जंप होस्ट या बैस्टियन सर्वर के माध्यम से रिमोट सर्वर से कैसे जुड़ता है।

यह मार्गदर्शिका Linux में SSH ProxyJump और SSH Proxy Command पर प्रकाश डालती है।

विषयसूची

SSH ProxyJump कमांड का उपयोग करके रिमोट Linux कनेक्ट करें

ProxyJump कमांड को -J फ्लैग से दिखाया जाता है। यह OpenSSH सर्वर संस्करण 7.3 में पेश किया गया था और आपको एक गढ़ या जंप सर्वर के माध्यम से छोड़ कर एक दूरस्थ लक्ष्य से संबंध बनाने में मदद करता है।

नीचे दिए गए सिंटैक्स से पता चलता है कि इस विकल्प का उपयोग कैसे किया जाता है:

$ ssh -J <jump-server> <remote-target>

एकाधिक गढ़ या जंप सर्वर के मामले में, सिंटैक्स निम्न प्रारूप लेता है।

$ ssh -J <jump-server-1> <jump-server-2> <remote-target>

दोनों ही स्थितियों में, आपको हर कदम पर रूट उपयोक्ता के रूप में लॉग इन किया जाएगा। सुरक्षा कारणों से यह आदर्श नहीं है, इसलिए हो सकता है कि आप प्रत्येक उदाहरण में भिन्न उपयोगकर्ता बनाना चाहें.

जैसा कि दिखाया गया है आप स्पष्ट रूप से विभिन्न उपयोगकर्ताओं और एसएसएच बंदरगाहों को निर्दिष्ट कर सकते हैं।

$ ssh -J <[email :port> <[email :port>

ProxyJump फ़्लैग को कार्य में प्रदर्शित करने के लिए, हमारे पास दिखाए गए अनुसार एक सरल सेटअप है।

Jump Server IP:		173.82.232.55		User: james
Remote Target IP:	173.82.227.89		User: tecmint

जंप सर्वर का उपयोग करके दूरस्थ लक्ष्य से कनेक्ट करने के लिए, कमांड निम्नानुसार दिखाई देगी।

$ ssh -J [email  [email 

आदेश आपको जंप सर्वर के उपयोगकर्ता पासवर्ड के लिए संकेत देगा, उसके बाद लक्ष्य प्रणाली के पासवर्ड के बाद, जिस पर आपको लक्ष्य प्रणाली तक पहुंच प्रदान की जाएगी।

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

Host host-jump
User james
Hostname 173.82.232.55

Host host_destination
User tecmint
Hostname 173.82.227.89
Port 22

उपरोक्त कॉन्फ़िगरेशन का उपयोग करके, आप दिखाए गए अनुसार लक्ष्य से कनेक्शन बना सकते हैं।

$ ssh -J host_destination

SSH ProxyCommand कमांड का उपयोग कर रिमोट लिनक्स कनेक्ट करें

SSH प्रॉक्सी जंप से पहले, ProxyCommand दूरस्थ लक्ष्य तक पहुँचने के लिए मेजबानों को कूदने का एकमात्र तरीका था। यह जंप सर्वर या बैस्टियन के माध्यम से दूरस्थ लक्ष्य से स्टडिन (स्टैंडर्ड इन) और स्टडआउट (स्टैंडर्ड आउट) को अग्रेषित करके काम करता है।

ProxyCommand निम्नलिखित सिंटैक्स लेता है।

$ ssh -o ProxyCommand="ssh -W %h:%p <jump server>" <remote target>

यहां, -W से %h:%p तर्क स्टडिन को अग्रेषित करते हैं और रिमोट होस्ट (%h) और रिमोट को भेजते हैं। होस्ट का पोर्ट <कोड>(%p)।

कमांड को क्रियान्वित करने के लिए, हमारी कमांड इस तरह दिखेगी

$ ssh -o ProxyCommand="ssh -W %h:%p 173.82.232.55" 173.82.227.89

बेशक, पूरी कमांड टाइप करना थकाऊ और समय लेने वाला है। इतनी लंबी कमांड टाइप करने से बचने के लिए, कोड की निम्नलिखित पंक्तियों को अपनी ~/.ssh/config फ़ाइल में जोड़ें।

Host host-destination
Hostname 173.82.227.89
ProxyCommand ssh -q -W %h:%p host-jump

सुरषित और बहार।

अब आपको बस इतना करना है कि रिमोट सर्वर से कनेक्ट करने के लिए निम्न आदेश चलाएं।

$ ssh host-destination

इस गाइड में, हमने प्रदर्शित किया कि कैसे ProxyJump और ProxyCommand कमांड काम करते हैं। आम तौर पर, ProxyJump ProxyCommand के बेहतर विकल्प के रूप में सामने आता है और जंप होस्ट के माध्यम से दूरस्थ लक्ष्य से जुड़ने का एक आसान और सहज तरीका प्रदान करता है।