असुरक्षित नेटवर्क पर सर्वर के बीच सुरक्षित rsync कैसे करें


19

मूल रूप से मैं जो पूछ रहा हूं, क्या कोई ऐसा साधन है जिसके द्वारा ss के अंदर rsync लपेटना है।

OpenSSH v4.9 + sftp के साथ कुछ अच्छे विकल्प हैं जो आपको आने वाले कनेक्शन को चुराने की अनुमति देते हैं और जैसे - और यह एक ऐसा समाधान है जिसे मैं देखूंगा, हालांकि मैं आरएचईएल के साथ फंस गया हूं, और आरएचईएल 4 या आरएचईएल 5 उस संस्करण के ऊपर नहीं हैं ssh।

मेरा वर्तमान समाधान क्लाइंट-उपयोगकर्ता की कुंजी का उपयोग करके सर्वर-साइड में कुछ इस तरह जोड़ना है ...

सर्वर% कैट ~ / .Ssh / अधिकृत_की
कमांड = "cd / srv / rsync / etl && tar --exclude './lost+found' -pcf - ./" ssh-rsa ...

... और इसलिए ग्राहक केवल एक चीज और केवल एक चीज तक ही सीमित रहेगा ...

ग्राहक% ssh -T -i $ {HOME} /। ssh / id_rsa oracle@database.com>> भावांतर।

यह कनेक्शन, साथ ही सर्वर (क्लाइंट से) को सुरक्षित करता है, हालांकि यह अक्षम है क्योंकि सभी फ़ाइलों को बार-बार पुनर्प्राप्त किया जाएगा।

मैं rsync का उपयोग करके कुछ समान (या सिर्फ बेहतर) कर रहा हूं।

जवाबों:


18

Rsync ट्रांसपोर्ट के रूप में ssh का उपयोग करने का समर्थन करता है

rsync -az /path/to/source username@host:/path/to/destination

rsync के कुछ पुराने संस्करणों को आपको ssh को स्पष्ट रूप से निर्दिष्ट करने की आवश्यकता है

rsync -aze ssh /path/to/source host:/path/to/destination

Rsync का उपयोग करने का एक विकल्प BC Pierce's Unison है , जिसकी rsync के समान कार्यक्षमता है, लेकिन डेल्टास की गणना करने के लिए फाइल सिस्टम चलने से बचने के लिए दोनों सिरों पर एक स्थानीय सूचकांक रखता है।


जल्दी उत्तर देने के लिए धन्यवाद! मुझे यह उल्लेख करना चाहिए कि मैंने इसकी भी जांच की - समस्या (मेरे मामले में) इसके साथ यह है कि यह उपयोगकर्ता को प्रतिबंधित / काट नहीं करता है। यदि ss के माध्यम से rsync सेवा से बात करना संभव था (यानी रिमोट को परिभाषित करने के दोहरे-कोलोन सिंटैक्स का उपयोग करके) - तो यह सही होगा - लेकिन ऊपर केवल एकल-कोलोन के साथ काम करता है - अर्थात, ssh के माध्यम से, और इसलिए कोई chroinging नहीं।
Xerxes

मैं उल्लेख करना भूल गया - यूनिसन अच्छा लग रहा है, और मैं इसके लिए एक लिंक रखूंगा - हालांकि इस मामले में - मैं RHN द्वारा प्रस्तावित कुछ भी बाहर स्थापित करने में असमर्थ हूं - जो कि लंगड़ा है, लेकिन मेरे नियंत्रण से बाहर है।
Xerxes

फिर भी मुझे एक और प्रतिबंध का उल्लेख करना चाहिए कि कनेक्शन को क्लाइंट से शुरू करने की आवश्यकता है - <i> पुलिंग </ i> पक्ष, और सर्वर नहीं। (सर्वर-साइड पुश स्वाभाविक रूप से सर्वर को सुरक्षित करना आसान होगा क्योंकि क्लाइंट का कोई कहना नहीं है, लेकिन मेरी वर्तमान समस्या पर लागू नहीं है)।
Xerxes

1
rsync -az सर्वर: / पाथ / पाथ / ऑन / क्लाइंट?
डेव चेनी

1
चिरोट क्यों? आप जानते हैं कि चुरोट वास्तव में सुरक्षा में सुधार नहीं करता है। इसके अलावा, यदि आप पहले ही ssh प्रदान करते हैं तो ss पर rsync सिस्टम की सुरक्षा को कम नहीं करता है। इसके बारे में भी सोचें कि ss पर rsync क्या करता है, सर्वर पर rsync बाइनरी को लागू करता है। आप अपनी कॉपी कमांड को उसी तरह सुरक्षित कर सकते हैं।
पॉल डे व्रेज

5

ठीक है मैं अंत में यह पता लगा, लेकिन समाधान के रूप में के रूप में मैं के लिए आशा व्यक्त की थी सुंदर नहीं है।

एक सर्वर साइड, आपको संबंधित उपयोगकर्ता के लिए अधिकृत_की फाइल में निम्नलिखित जोड़ना होगा ...

no-pty, command="exit"

क्लाइंट पर, आप फिर निम्नानुसार एक सुरंग बना सकते हैं ...

ssh -l username -fNTL 8073:server:873

एक बार सुरंग को स्थापित करने के बाद, आप हमेशा की तरह rsync कर सकते हैं - डबल-कोलोन सिंटैक्स का उपयोग करना संभव नहीं है - लोकलहोस्ट के लिए।

आपके द्वारा चुने गए लोकलहोस्ट पोर्ट नंबर (8073) पूरी तरह से स्पष्ट रूप से वैकल्पिक हैं, बस याद रखें कि यही आपके लिए rsync है ...

rsync --port=8073 -a user@localhost::mySecureStore /srv/some/place/

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.