दो नेटवर्क के बीच एस.सी.पी.


12

मुझे दो कंप्यूटरों के बीच एक फ़ाइल स्थानांतरित करने की आवश्यकता है जो एक ही नेटवर्क से कनेक्ट नहीं हैं। मुझे एक तीसरा कंप्यूटर मिला जो वीपीएन के माध्यम से दोनों नेटवर्क देख सकता है।

तीसरे कंप्यूटर से, मैं कर सकता हूँ:

scp root@firstcomputer:./file ./

और निम्नलिखित वाक्य के साथ अंतरण समाप्त करें:

scp ./file root@secondcomputer:./

लेकिन मैं इसे केवल एक पंक्ति में नहीं कर सकता, निम्नानुसार है:

scp root@firstcomputer:./file root@secondcomputer:./

त्रुटि प्रतिक्रिया है

ssh: connect to host secondcomputer port 22: No route to host
lost connection

मुझे पता है कि शायद इसलिए पहला कंप्यूटर दूसरे कंप्यूटर को नहीं देख सकता है। क्या एससीपी एक परम को देना संभव है जो इस तथ्य से निपटता है कि एससीपी कार्यक्रम चलाने वाली मशीन ही एकमात्र है जो दोनों कंप्यूटरों को देख सकती है?

वैसे, तीसरा कंप्यूटर एक मैक है जिसमें लायन और मुट्ठी में और दूसरा डेबियन चल रहा है।

जवाबों:


3

आपको SSH सुरंग का उपयोग करने में सक्षम होना चाहिए।

मान लें कि आप किसी दूरस्थ कंप्यूटर ("रिमोट") से अपने स्थानीय कंप्यूटर ("स्थानीय") में एक फ़ाइल स्थानांतरित करने की कोशिश कर रहे हैं, अपने स्थानीय कंप्यूटर पर टाइप करके तीसरे कंप्यूटर ("गेटवे") के माध्यम से सुरंग स्थापित करें:

ssh -fNL 12345:remote:22 gatewaylogin@gateway

तब आप इस सुरंग पर (अब भी अपने स्थानीय कंप्यूटर पर टाइप करके) SCP कमांड की असीमित मात्रा में चला सकते हैं:

scp -P 12345 remotelogin@localhost://path/to/remote/file /local/path/where/you/want/file

मैंने सिर्फ अपने नेटवर्क पर इसका परीक्षण किया, और इसने पूरी तरह से काम किया।

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


21

Scp विकल्प -3 में वही होना चाहिए जो आप ढूंढ रहे हैं। इसे अपने उदाहरण में रखने के लिए:

scp -3 root@firstcomputer:./file root@secondcomputer:./

ध्यान दें कि -3 विकल्प को सबसे पहले ओपनएसएसएच 5.7 में पेश किया गया था, जिसे 2011 की शुरुआत में जारी किया गया था।


मेरा स्कैप -3 को लागू नहीं करता है जब मैं कॉमन को अंजाम देता हूं तो मुझे scp: गैरकानूनी विकल्प - 3 उपयोग: scp [-1246BCEpqrv] ...
JorgeO

1
यह सही है। -3 केवल ओपनएसएसएच के नवीनतम संस्करण में उपलब्ध है, जो मुझे यकीन नहीं है कि डेबियन ने अभी तक लागू किया है।
रिलिंडो

आह, इसके बारे में क्षमा करें। संस्करण की आवश्यकता के संबंध में उत्तर अपडेट करें।
औरोल

1

आप यह कोशिश कर सकते हैं:

root@firstcomputer:./file /tmp && scp /tmp/file root@secondcomputer:./ && rm /tmp/file

यह फ़ाइल को तीसरे कंप्यूटर पर / tmp निर्देशिका में कॉपी कर देगा और यदि यह सफल होता है, तो वह उस फ़ाइल को द्वितीयक कंप्यूटर पर फिर से कॉपी करेगा और फिर खुद को साफ करेगा। चूंकि आप && ऑपरेटर का उपयोग कर रहे हैं, इसलिए प्रत्येक कमांड केवल तभी निष्पादित होगी जब पूर्व कमांड सफल हो।


&& ऑपरेटर के बारे में नहीं जानता था। उपयोग करने से बेहतर;
जॉर्जो जूल 26'11

यह वही तकनीक है जो पहले उदाहरण में इस्तेमाल किया गया मूल प्रश्न है, जिसे टालने की कोशिश की जा रही थी (कंप्यूटर ए से स्थानीय मशीन पर कॉपी करें, फिर स्थानीय फ़ाइल को कंप्यूटर बी में कॉपी करें)।
जेसन सी
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.