मास्टर कनेक्शन
यदि आप पहले से योजना बनाते हैं तो यह सबसे आसान है।
पहली बार एक मास्टर कनेक्शन खोलें। बाद के कनेक्शन के लिए, मौजूदा मास्टर कनेक्शन के माध्यम से मार्ग दास कनेक्शन। अपने आप में ~/.ssh/config
, कनेक्शन साझाकरण स्वचालित रूप से होने के लिए सेट करें:
ControlMaster auto
ControlPath ~/.ssh/control:%h:%p:%r
यदि आप एक मौजूदा कनेक्शन के रूप में उसी (उपयोगकर्ता, पोर्ट, मशीन) के लिए एक ssh सत्र शुरू करते हैं, तो दूसरा सत्र पहले से अधिक सुरंगनुमा होगा। दूसरे कनेक्शन को स्थापित करने के लिए किसी नए प्रमाणीकरण की आवश्यकता नहीं है और यह बहुत तेज़ है।
इसलिए जब आपके पास अपना सक्रिय कनेक्शन हो, तो आप जल्दी कर सकते हैं:
अग्रेषित करना
मौजूदा कनेक्शन पर, आप एक रिवर्स ssh सुरंग स्थापित कर सकते हैं। Ssh कमांड लाइन पर, -R 22042:localhost:22
जहां रिमोट मशीन पर किसी भी अन्य पोर्ट नंबर से भिन्न है, जहां 22042 एक यादृच्छिक रूप से चुनी गई संख्या है , पास करके एक रिमोट फ़ॉरवर्डिंग बनाएं । फिर ssh -p 22042 localhost
रिमोट मशीन पर आपको स्रोत मशीन से वापस जोड़ता है; आप scp -P 22042 foo localhost:
फ़ाइलों को कॉपी करने के लिए उपयोग कर सकते हैं ।
आप इसे आगे के साथ स्वचालित कर सकते हैं RemoteForward 22042 localhost:22
। इसके साथ समस्या यह है कि यदि आप ssh के कई उदाहरणों के साथ एक ही कंप्यूटर से कनेक्ट होते हैं, या यदि कोई अन्य व्यक्ति पोर्ट का उपयोग कर रहा है, तो आपको अग्रेषण नहीं मिलता है।
यदि आपने प्रारंभ से दूरस्थ अग्रेषण सक्षम नहीं किया है, तो आप इसे मौजूदा ssh सत्र पर कर सकते हैं। टाइप करें Enter ~C
Enter -R 22042:localhost:22
Enter। अधिक जानकारी के लिए मैनुअल में "एस्केप वर्ण" देखें।
इस सर्वर फॉल्ट थ्रेड में कुछ रोचक जानकारी भी है ।
कॉपी पेस्ट
यदि फ़ाइल छोटी है, तो आप इसे टाइप कर सकते हैं और टर्मिनल आउटपुट से कॉपी-पेस्ट कर सकते हैं। यदि फ़ाइल में गैर-मुद्रण योग्य वर्ण हैं, तो बेस 64 जैसे एन्कोडिंग का उपयोग करें ।
Remote.example.net $ base64 <myfile
(आउटपुट की प्रतिलिपि बनाएँ)
local.example.net $ base64 -d> myfile
(क्लिपबोर्ड सामग्री पेस्ट करें)
Ctrl +D
अधिक सुविधाजनक रूप से, यदि आपके पास एक्स अग्रेषण सक्रिय है, तो दूरस्थ मशीन पर फ़ाइल को कॉपी करें और इसे स्थानीय रूप से पेस्ट करें। आप डेटा को अंदर xclip
या बाहर पाइप कर सकते हैं xsel
। यदि आप फ़ाइल नाम और मेटाडेटा को संरक्षित करना चाहते हैं, तो एक संग्रह को कॉपी-पेस्ट करें।
remote.example.net$ tar -czf - myfile | xsel
local.example.net$ xsel | tar -xzf -
scp file.foo user@myclient.com:file.foo
: P