मैं एक RSync जॉब सेट करना चाहता हूं जो SSH के माध्यम से कनेक्ट हो।
मेरे पास मेरा कंप्यूटर (बैकअप @ मायहोस्ट) और रिमोट होस्ट (टेस्ट @ रेमहोस्ट) है और मुझे फ़ोल्डर को बैकअप करने की आवश्यकता है ~ / कुछ यह सब सामग्री के साथ है। Ssh उपयोगकर्ता परीक्षण में केवल ~ / फ़ोल्डर में सभी फ़ाइलों और फ़ोल्डरों तक पहुंच है। मैं rsync का उपयोग परीक्षण @ remhost: ~ / कुछ फ़ोल्डर को बैकअप @ myhost: ~ / bak फ़ोल्डर में कॉपी करने के लिए करना चाहता हूं।
इस प्रयोजन के लिए मैं Ubuntu 11.10 (Oneiric) पर BASH के माध्यम से निम्न कमांड का उपयोग करता हूं:
rsync -avz -e ssh test@remhost:~/something/ ~/bak/
प्रवेश करने के बाद मुझे यह मिलता है:
test@remhost's password:
मैं पासवर्ड टाइप करता हूं और rsync काम करता है।
मैं उपरोक्त आदेश को स्वचालित रूप से पासवर्ड इनपुट करने और इसे एक पैरामीटर के रूप में पास करना चाहता हूं या स्वचालित रूप से इनपुट करना चाहता हूं और काम शुरू करना चाहता हूं।
मैंने निष्पादित करने की कोशिश की rsync -avz -e ssh test:password@remhost:~/something/ ~/bak/
लेकिन यह अभी भी पासवर्ड के लिए पूछता है और यह कष्टप्रद है।
मैं किसी भी प्रकार की कुंजी (आरएसए, डीएसए या किसी अन्य) के बारे में नहीं सुनना चाहता। मैं बस एक साधारण कमांड चाहता हूं जो मुझे लॉग इन करे और काम करे।
EDIT: एक संभावित परिदृश्य हो सकता है, अगर सार्वजनिक कुंजी प्रमाणीकरण अक्षम है और आप इसे बदल नहीं सकते हैं। उदाहरण के लिए यदि आप OpenSSH का उपयोग करते हैं, तो फ़ाइल को संपादित करने sshd_config
और जोड़ने के लिए आपको सर्वर पर रूट विशेषाधिकारों की आवश्यकता होगी PubkeyAuthentication yes
।
संपादित करें: यह वही है जो अंत में मेरे लिए काम करता है:
sshpass -p 'sshpassword' rsync --progress -avz -e ssh test@remhost:~/something/ ~/bak/
कृपया ध्यान दें कि इस विधि को सुरक्षित नहीं माना जाता है क्योंकि यह सादे पाठ में पासवर्ड भेजता है और यह मध्य-मध्य हमलों के लिए असुरक्षित है। यह एक मजबूत सुरक्षा के लिए प्रमुख पुष्टिकरण का उपयोग करने की सलाह दी जाती है।