बिना कोई पासवर्ड प्रदान किए मैं दो होस्ट के बीच rsync कैसे सेट कर सकता हूं?
बिना कोई पासवर्ड प्रदान किए मैं दो होस्ट के बीच rsync कैसे सेट कर सकता हूं?
जवाबों:
नीचे गीक स्टफ का लेख है :
1. टेस्ट rsync ओवर ssh (पासवर्ड के साथ):
यह सुनिश्चित करने के लिए rsync करें कि यह दूरस्थ सर्वर पर आपके खाते के लिए पासवर्ड मांगता है, और दूरस्थ सर्वर पर फ़ाइलों को सफलतापूर्वक कॉपी करता है।
निम्न उदाहरण स्थानीय फ़ोल्डर
/home/test
को दूरस्थ फ़ोल्डर/backup/test
(पर) को सिंक्रनाइज़ करेगा192.168.200.10
सर्वर ) ।इससे आपको रिमोट सर्वर पर अपने खाते का पासवर्ड पूछना चाहिए।
rsync -avz -e ssh /home/test/ user@192.168.200.10:/backup/test/
2. ssh-keygen चाबियाँ बनाता है।
अब सेटअप करें
ssh
ताकि जब आप ssh करें तो यह पासवर्ड न मांगे।ssh-keygen
सार्वजनिक और निजी कुंजी बनाने के लिए स्थानीय सर्वर पर उपयोग करें ।$ ssh-keygen
पासफ़्रेज़ दर्ज करें (बिना पासफ़्रेज़ के खाली):
फिर से वही पासफ़्रेज़ दर्ज करें: ध्यान दें: जब यह आपसे पासफ़्रेज़ दर्ज करने के लिए कहता है तो बस कुंजी दर्ज करें, और यहाँ अपना पासवर्ड न दें।
3. ssh-copy-id, दूरस्थ होस्ट के लिए सार्वजनिक कुंजी की प्रतिलिपि बनाता है
का उपयोग करें
ssh-copy-id
, दूरस्थ होस्ट करने के लिए सार्वजनिक कुंजी की प्रतिलिपि बनाएँ।ssh-copy-id -i ~/.ssh/id_rsa.pub user@192.168.200.10
नोट: उपरोक्त रिमोट होस्ट पर उपयोगकर्ता खाते के लिए पासवर्ड पूछेगा, और सार्वजनिक कुंजी को स्वचालित रूप से उपयुक्त स्थान पर कॉपी कर देगा। अगर ssh-copy-id आपके लिए काम नहीं करता है, तो पहले से चर्चा की गई विधि का उपयोग करें ssh पासवर्ड कम लॉगिन सेटअप करें।
4. बिना पासवर्ड के ss पर rsync करें
अब, आपको पासवर्ड दर्ज किए बिना दूरस्थ होस्ट में ssh करने में सक्षम होना चाहिए।
ssh user@192.168.200.10
फिर से rsync करें, यह आपको इस बार किसी भी पासवर्ड को दर्ज करने के लिए नहीं कहेगा।
rsync -avz -e ssh /home/test/ user@192.168.200.10:/backup/test/
सर्वरए में सार्वजनिक कुंजी को जनरेट करें
$ ssh-keygen
$ Enter passphrase (empty for no passphrase):
$ Enter same passphrase again:
सार्वजनिक कुंजी जेनरेट की जाएगी और उसे स्टोर किया जाएगा
~/.ssh/id_rsa.pub
सार्वजनिक कुंजी को दूरस्थ होस्ट पर कॉपी करें
ssh-copy-id -i ~/.ssh/id_rsa.pub 192.168.1.100
या
~/.ssh/authorized_keys
। यदि मौजूद नहीं है तो फ़ाइल बनाएँ। सुनिश्चित करें कि फ़ाइल मोड 700 है।ये सभी rsync सुझाव उबंटू 16.04 LTS पर अगस्त 2017 में नवीनतम संस्करण का उपयोग करने में विफल हो रहे हैं। उनमें से एक भी काम नहीं करता है।
वे सभी फ़ाइल सर्वर पर चल रहे rsync डेमॉन की आवश्यकता की कमी को भी साझा करते हैं।
यह उत्तर एक सामान्य लिनक्स एनएएस के साथ काम करता है
यहाँ STEPS हैं:
1) USE rsync जैसा कि नीचे दिखाया गया है। (आपके द्वारा बनाई गई / mnt या / मीडिया के तहत एक निर्देशिका या आपके द्वारा माउंट किए गए डिवाइस पर। इससे कोई फर्क नहीं पड़ता) 2) ट्रांसफ़र फ़ाइलों को स्कैन के साथ नीचे दिखाए गए अनुसार। FileZilla भी काम करेगा।
यह सब (फाइलज़िला को छोड़कर) क्रॉन में पासवर्ड के बिना काम कर सकता है।
यह सेटअप बहुत अच्छा काम करता है। पासवर्ड की आवश्यकता होने पर ही आप आरएसए पासवर्ड रहित लॉगिन सेट करने के लिए प्रारंभिक ssh-copy-id सेट करते हैं। फिर आप इसे एक बार FileZilla में प्रोग्राम करें। उसके बाद, दिन-प्रतिदिन, कोई पासवर्ड संकेत नहीं होता है। यह आसान है। और सबसे अच्छी बात यह है कि आप rsync प्रोग्राम के सभी लाभों का उपयोग कर सकते हैं।
यह उत्तर बताता है कि बिना पासवर्ड के rsync का उपयोग कैसे करें।
इसके अलावा, सिस्टम पर किसी अन्य डेमॉन (rsync) को स्थापित करने की कोई आवश्यकता नहीं है।
यदि आप पहले से नहीं है, तो यह करें:
ssh-keygen
ssh-copy-id -i ~/.ssh/id_rse.pub NASserver
और इसे इसके साथ परखें:
ssh NASserver
और शायद कुछ इस तरह:
scp myfile myusername@NASserver:Documents
मेरे पास एक दूसरा हार्ड ड्राइव है, इसलिए मैं sdb1 पर सबडायरेक्ट पर बूट ड्राइव की प्रतिलिपि बनाने के लिए rsync का उपयोग करता हूं (rsync के नीचे / mnt और बाहर रखा गया)।
यदि आपके पास एक भौतिक हार्ड ड्राइव नहीं है, और आपके पास पर्याप्त स्थान उपलब्ध है, तो आप सिर्फ / mnt (या / मीडिया) के तहत एक उपनिर्देशिका बनाते हैं और उसका उपयोग करते हैं।
जब तक निर्देशिका को बाहर रखा जाता है, तब तक कोई फर्क नहीं पड़ता कि यह अलग ड्राइव पर है या नहीं।
यहाँ बैकअप स्क्रिप्ट है:
cls
echo "EMPTYING TRASH"
rm ~/.local.share/Trash/*
echo "====================================================================="
echo " BEGINNING rsync from root to /mnt/full/sysbkp"
echo "====================================================================="
time sudo rsync -aAXv / --delete --ignore-errors --exclude={"/dev/*","/proc/*","/sys/*","/tmp/*","/run/*","/mnt/*","/media/*","/lost+found"} /mnt/full/mysystem
स्क्रिप्ट का उपयोग करने के बाद:
मैं हमेशा लक्ष्य पर एक नई निर्देशिका बनाता हूं NASserver: / mnt / fullsys / mysystem इसलिए केवल प्रासंगिक फाइलें स्थानांतरित की जाती हैं।
ssh -e"mv /mnt/fullsys/mysystem mysystem.bak" myusername@NASserver
ssh -e"mkdir /mnt/fullsys/mysystem" myusername@NASserver
scp -r /mnt/full/mysystem myusername@NASserver:/mnt/fullsys/mysystem
देखा! इसमें कुछ समय लगता है लेकिन फिर यह किया जाता है।
क्रोन में दोनों स्क्रिप्ट ठीक काम कर सकती हैं।
इसका विकल्प यह है कि FileZilla का उपयोग इसे NAS सर्वर को मैन्युअल रूप से भेजने के लिए किया जाए।
चूँकि हमेशा
make a new directory and enter it
डिलीट 1TB HDD पर मैं FileZilla के माध्यम से डिलीट हो सकता हूँ, इसलिए केवल संबंधित फाइल ट्रांसफर की जाती है।
केवल जब हस्तांतरण समाप्त हो जाता है तो मैं पुराने संस्करण को हटा देता हूं।
देखा। सफलता।
पते में उपयोगकर्ता को चिह्नित करना बेहतर होगा
ssh-copy-id -i ~/.ssh/id_rsa.pub <user_in_server>@192.168.1.100
rsync -aAVx $(ssh-copy-id -i /home/myusername/.ssh/id_rsa.pub)
फिर सभी excludes
और --delete
आदि मैंने इसे अभी तक काम नहीं किया है लेकिन यह सबसे निकटतम है जिसे मैंने देखा है। माना जाता है कि आपको यह करना होगा भले ही आप पहले से ssh
और scp
लक्ष्य सर्वर पर कर सकते हैं , और rsync डेमॉन को चलाने की आवश्यकता है क्योंकि यह सामान्य sftp प्रारूप का उपयोग नहीं करता है। मैं अब भी खोज रहा हूं।