आप इसे उल्टा भी कर सकते हैं और शायद आसान है।
मान लें कि आपके पास एक ssh सत्र है जिसे आप उस मशीन के साथ खोलना चाहते हैं जिसे आप फ़ाइल भेजना चाहते हैं। यह सबसे दूर स्थित पीसी, हम इस हॉप 2 को कॉल करेंगे। आपका "प्रॉक्सी" होस्ट हॉप 1 होगा। पीसी जो फ़ाइल-मूल है, हम उस मूल को कॉल करेंगे।
origin:~/asdf.txt --> hop1 --> hop2:~/asdf.txt
आप दूरस्थ पीसी पर एक स्थानीय पोर्ट उपलब्ध कराने वाली सुरंगों का निर्माण कर सकते हैं। हम दूरस्थ पीसी पर खोलने के लिए एक पोर्ट को परिभाषित कर रहे हैं, जो कि आपके द्वारा सुरंग के निर्माण के दौरान आपके द्वारा खींचे गए पोर्ट पर पुनर्निर्देशित होगा।
हॉप 2 पर:
ssh -R 5555:127.0.0.1:22 <hop1_user>@<hop1_IP>
#this has the effect of building a tunnel from hop2 to hop1, making hop2's port 22 available on hop1 as port 5555
अब उस ओपन टनल सेशन में आप हॉप 1 से फाइल_ऑरिगिन तक कर सकते हैं।
Hope1 पर:
ssh -R 6666:127.0.0.1:5555 <origin_user>@<origin_IP>
#this has the effect of building a tunnel from hop1 to origin while also pulling the active tunnel with it, making hop1's port 5555 (hop2's port 22) available on origin as port 6666.
अब आप हॉप 2 से लेकर हॉप 1 तक मूल के लिए तैयार हैं। संयोगवश, अब दोनों बंदरगाह 5555 और 6666 मूल पर खुले हैं, जो हॉप 2 के पोर्ट 22 पर पुनर्निर्देशित हैं। इस सत्र के भीतर, दोनों निम्नलिखित हॉप 2 के लिए मान्य एसपीपी मार्ग हैं:
मूल पर:
scp -P 6666 ~/asdf.txt <hop2_user>@<127.0.0.1>:~/asdf.txt
इस तरह, आप बीच में हॉप्स की कुछ मनमानी संख्या रख सकते हैं, और दो से अधिक हॉप्स को एक साथ चलाने के संदर्भ में काम करना आसान है।