हाँ, ProxyCommandअपने SSH विन्यास का उपयोग कर ।
अपने होम डायरेक्टरी में एक SSH कॉन्फ़िगरेशन फ़ाइल बनाएँ (जब तक कि आप इस सिस्टम को चौड़ा नहीं करना चाहते) ~/.ssh/config:
Host unibroker # Machine B definition (the broker)
Hostname 12.34.45.56 # Change this IP address to the address of the broker
User myusername # Change this default user accordingly
# (`user@unibroker` can overwrite it)
Host internalmachine # Machine A definition (the target host)
ProxyCommand ssh -q unibroker nc -q0 hostname.or.IP.address.internal.machine 22
अब आप सीधे मशीन ए का उपयोग करके पहुंच सकते हैं
ssh user@internalmachine
यह भी ध्यान दें कि अब आपके पास इसके लिए एक एकल SSH होस्ट लक्ष्य नाम है, आप इसे अन्य अनुप्रयोगों में भी उपयोग कर सकते हैं। उदाहरण के लिए:
फाइलों को कॉपी करने के लिए एस.सी.पी.
scp somefile user@internalmachine:~/
आपके GUI अनुप्रयोगों में:
sftp://user@internalmachine/मशीन पर ब्राउज़ करने के लिए स्थान के रूप में उपयोग करें।
केडीई-आधारित (डॉल्फिन): उपयोग fish://user@internalmachine/
टिप्पणियाँ
बदलें hostname.or.IP.address.internal.machineऔर बंदरगाह ( 22) मशीन तक आप पहुंचना चाहते करने के लिए के रूप में यदि आप से होगा unibrokerमशीन।
Unibroker होस्ट पर netcat संस्करणों के आधार पर, -q0विकल्प को छोड़ दिया जाना चाहिए। प्रमाणीकरण के बारे में; आप मूल रूप से अपने कार्य केंद्र से दो एसएसएच कनेक्शन स्थापित कर रहे हैं। इसका मतलब यह है कि यूनिब्रोकर होस्ट और इंटर्माचाइन होस्ट दोनों को एक के बाद एक (कीपर / पासवर्ड और होस्ट कुंजी सत्यापन के लिए) सत्यापित / प्रमाणित किया जाता है।
व्याख्या
यह ProxyCommandऔर 'netcat' के उपयोग का यह तरीका है। मुझे यह पसंद है, क्योंकि मेरा SSH क्लाइंट सीधे लक्ष्य मशीन से बात करता है ताकि मैं अपने क्लाइंट से होस्ट कुंजी सत्यापित कर सकूं और मैं ब्रोकर पर किसी अन्य कुंजी का उपयोग किए बिना अपने सार्वजनिक कुंजी प्रमाणीकरण का उपयोग कर सकूं।
प्रत्येक Hostएक नए होस्ट अनुभाग की शुरुआत को परिभाषित करता है। Hostnameउस होस्ट का लक्ष्य होस्टनाम या IP पता है। Userवह है जो आप उपयोगकर्ता के हिस्से के रूप में प्रदान करेंगे ssh user@hostname।
ProxyCommandलक्ष्य मशीन के लिए पाइप के रूप में इस्तेमाल किया जाएगा। पहली मशीन के लिए SSH का उपयोग करके और सीधे ncवहाँ से एक सरल 'netcat' ( ) को सेट करने के लिए, यह मूल रूप से उन लोगों के बीच दलाल से आंतरिक मशीन के लिए एक सादा रूप से आगे है। -qविकल्प किसी भी निर्गम (सिर्फ एक निजी पसंद) मौन करने हैं।
सुनिश्चित करें कि आपके पास ब्रोकर पर नेटकैट स्थापित है (आमतौर पर उबंटू पर डिफ़ॉल्ट रूप से उपलब्ध है) - या तो नेटकैट-ओपनबेड
या नेटकैट-पारंपरिक
।
ध्यान दें कि आप अभी भी दो बार यहाँ एन्क्रिप्शन के साथ SSH का उपयोग कर रहे हैं। जबकि netcat चैनल प्लेनटेक्स्ट है, आपके पीसी पर आपका SSH क्लाइंट अंतिम लक्ष्य मशीन के साथ एक और एन्क्रिप्टेड चैनल स्थापित करेगा।