समस्या: जिस स्थान से मैं काम कर रहा हूं वह मेरे आवेदन के लिए मास्टर नोड में ssh नहीं कर सकता, मान लीजिए 10.30.30.1 जो किसी अन्य देश द्वारा होस्ट किया गया है। इसे हल करने के लिए, मेरे पास एक जंप बॉक्स है जिसे मैं अपने स्थान से 10.50.50.1 कह सकता हूं।

और जंप बॉक्स में लॉग इन करने के बाद, मैं फिर से ssh 10.30.30.1 . कमांड चलाता हूं

क्या मुझे जंप बॉक्स में पहले लॉग इन करने और फिर मास्टर नोड में ssh करने का एक कदम बचाने का कोई तरीका है, क्योंकि यही एकमात्र चीज है जिसके लिए मैं जंप बॉक्स का उपयोग करता हूं।

क्या मैं उस ssh कमांड को सीधे चलाने के लिए जंप बॉक्स को कॉन्फ़िगर कर सकता हूं जिस क्षण मैं लॉग इन करता हूं? क्या कोई कमांड है जो मुझे एक ही कमांड या पुट्टी / MOBA XTerm कॉन्फ़िगरेशन में जंप बॉक्स के माध्यम से सीधे मास्टर करने की अनुमति देता है?

0
nishantvas 18 अगस्त 2017, 12:48

2 जवाब

सबसे बढ़िया उत्तर

मान लें कि आप पहले ssh server1 निष्पादित करते हैं, फिर server1 पर, आप ssh server2 निष्पादित करते हैं। आप जो चाहते हैं वह यह है कि जब आप अपने स्थानीय कंप्यूटर पर ssh server1 निष्पादित करते हैं, तो आप स्वचालित रूप से server2 में लॉग इन कर सकते हैं।

ऐसा करने का तरीका एक स्क्रिप्ट जोड़ना है जो आपके द्वारा server1 में लॉगिन करने पर स्वचालित रूप से चलती है। आप इसे केवल अपनी ~/.bashrc फ़ाइल में कोड ssh server2 जोड़कर कर सकते हैं (यदि आप Ubuntu का उपयोग कर रहे हैं। या अन्य OS में, फ़ाइल का नाम ~/.bashxxx के समान है)।

लेकिन ऐसा करने के बाद भी, आपको हर बार server1 में लॉग इन करने पर server2 के लिए पासवर्ड टाइप करना होगा। यदि आप server2 का पासवर्ड हाथ से टाइप नहीं करना चाहते हैं, तो आप server1 से server2 तक पासवर्ड-मुक्त ssh कनेक्शन का उपयोग कर सकते हैं। कैसे पता करने के लिए यह पेज देखें।

0
Dillion Wang 18 अगस्त 2017, 13:11

निम्नलिखित पंक्तियों को अपने ~/.ssh/config में रखें:

Host target-host 
    ProxyJump jump-host

यह मानता है कि सर्वर और क्लाइंट दोनों OpenSSH >= 7.3 चल रहे हैं। पुराने संस्करणों के लिए आप ProxyJump के बजाय ProxyCommand और netcat का उपयोग कर सकते हैं। netcat जम्प होस्ट पर स्थापित होना चाहिए:

Host target-host
    ProxyCommand ssh jump-host netcat -w 120 %h %p
1
hek2mgl 18 अगस्त 2017, 12:59