एक सर्वर से दूसरे सर्वर पर एससीपी?


34

मैं अपने स्थानीय कंप्यूटर को दरकिनार करते हुए सीधे एक सर्वर से दूसरे में फ़ाइलों को कॉपी करने की कोशिश कर रहा हूं।

मैंने किया

scp -r usrname@server1.com:~/data/* usrname@server2.com:~/data/
Password: 
Host key verification failed.
lost connection

क्या यह भी संभव है? मैं इसे कैसे ठीक कर सकता हूं?


क्या आप निम्नलिखित कमांड का उत्पादन कर सकते हैं- scp -r -v usrname@server1.com: ~ / data / * usrname@server2.com: ~ / data /
pragmatic

जवाबों:


55

जब मैं दो सर्वरों के बीच कोई संबंध संभव नहीं होता है, तो मैं अक्सर उपयोग करता हूं

scp -3 user@server1:/path/to/file user@server2:/path/to/file

स्रोत

-3 दो मेजबान के बीच की प्रतियां स्थानीय मेजबान के माध्यम से स्थानांतरित की जाती हैं। इस विकल्प के बिना डेटा को सीधे दो दूरस्थ होस्ट के बीच कॉपी किया जाता है। ध्यान दें कि यह विकल्प प्रगति मीटर को निष्क्रिय करता है।

माना जाता है कि आप दोनों का संबंध अच्छा है, इसकी गति बहुत धीमी नहीं है।


इसके अलावा यदि आपको दोनों सर्वरों पर विशेष पोर्ट का उपयोग करने की आवश्यकता है: superuser.com/questions/686394/…
गड्ढे

-rयदि आप निर्देशिका को कॉपी कर रहे हैं तो ध्वज जोड़ना न भूलें ।
टेलर एड्मिस्टन

16

हां यह संभव है, लेकिन उस नाम का उपयोग करके ही server1.comपहुंच सकते हैं server2.com। यदि आपको शायद संदेश नहीं मिलेगा:ssh: connect to host server2 port 22: Connection refused

manके लिए पेज scpस्पष्ट रूप से कहा गया है कि यह एक नेटवर्क पर और कहा कि मेजबान के बीच प्रतियां:

दो दूरस्थ मेजबानों के बीच कॉपियों की भी अनुमति है।

आप (एक बार) क्या करना चाहिए है sshकरने के लिए username@server1.comहै और वहाँ से sshकरने के लिए username@server2.com। प्रामाणिकता के प्रश्न का उत्तर दें जो आपको हां के साथ मिलेगा, मेजबान कुंजी सत्यापन संदेश से छुटकारा पाने के लिएscp

आपको इसके साथ अग्रेषण एजेंट को सक्षम करना पड़ सकता है:

scp -o "ForwardAgent yes" -r usrname@server1.com:~/data/* usrname@server2.com:~/data/

लेकिन सुनिश्चित करें कि आपको उस खतरे का एहसास है ( man ssh_config)


मैं बस sshसे एड server1.comकरने के लिए server2.com, और मैं वास्तव में सवाल के जवाब दिए और सफल रहा। फिर, मैं अपने स्थानीय कंप्यूटर पर वापस जाता हूं, इसे फिर से करता हूं, और server2.comपासवर्ड का संकेत प्राप्त करता हूं । लेकिन यह वहाँ विफल रहता है:Permission denied (publickey,keyboard-interactive). lost connection
Sibbs जुआ

1
@ SibbsGambling मुझे लगता है कि यह आपकी निजी कुंजी को अग्रेषित करने पर निर्भर करता है। क्या आप पासवर्ड प्रदान किए बिना दोनों सर्वरों में लॉगिन कर सकते हैं? आप से लॉग इन कर सकते हैं server1करने के लिए server2एक पासवर्ड प्रदान किए बिना। आपको "फ़ॉरवर्डएजेंट हाँ" सेट करना पड़ सकता है।
एंथन

1

सबसे पहले आपको यह जांचने की आवश्यकता है कि आप बिना किसी त्रुटि के सर्वर 2 में ssh करने में सक्षम हैं, यदि आपको वही त्रुटि मिलती है, तो कृपया फ़ाइल खोलें ~/.ssh/known_hostsऔर सर्वर 2 कुंजी को खोजें और इसे हटा दें।

फिर जांचें कि क्या आप होस्ट नाम से सर्वर को पिंग करने में सक्षम हैं

यदि नहीं तो नीचे बताए अनुसार दोनों सर्वर होस्ट फ़ाइल को संपादित करें

 #vi /etc/hosts  
 server1 192.186.x.x  
 server2 192.186.x.xx   
 :wq   ---> to save  

आपके द्वारा इस सीडी के साथ फाइल के स्थान पर करने के बाद जिसे आप सर्वर 2 में कॉपी करना चाहते हैं

scp file_name user@server2:/path_to_the_directory ---> आप होस्ट नाम के बजाय IP का उपयोग आप उल्लेख कर सकते हैं कर सकते हैं -Rएक निर्देशिका कॉपी करने।


0

जांचें कि ~/.ssh/known_hostsक्या दोनों सर्वरों के लिए उचित रिकॉर्ड हैं

यह भी जांचें कि क्या सर्वर 1 का सर्वर 2 के लिए उचित ~/.ssh/known_hostsरिकॉर्ड है


-2

एक सर्वर से दूसरे में फाइल कॉपी करने के लिए आप इसे नीचे कमांड का उपयोग कर सकते हैं:

scp source_user@source_remote_host:/usr/bin/mysql_backup.sh \
         target_user@target_remote_host:/var/tmp/
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.