UNIX / Linux पर SSH के साथ पासवर्ड के बिना रुपी सेटअप कैसे करें?


19

बिना कोई पासवर्ड प्रदान किए मैं दो होस्ट के बीच rsync कैसे सेट कर सकता हूं?

linux  ssh  rsync 

यह बहुत उपयोगी होना चाहिए: blogs.oracle.com/jkini/entry/how_to_scp_scp_and
Tom

Maverick143 ने एक उत्तर दिया है, लेकिन यह सवाल वास्तव में StackOverflow पर नहीं है क्योंकि इसका प्रोग्रामिंग से कोई लेना-देना नहीं है। SuperUser.com अधिक प्रासंगिक रहा होगा।
मार्टिन

जवाबों:


30

नीचे गीक स्टफ का लेख है :

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/

यह कुआं बेहतर मदद करता है। troy.jdmz.net/rsync/index.html
MangeshBiradar

5
स्पष्ट कॉपी और thegeekstuff.com/2011/07/rsync-over-ssh-without-password से पेस्ट करें आपको मूल लेखक का संदर्भ देना चाहिए।
लॉरेंस चेरोन

यदि आपको किसी भिन्न उपयोगकर्ता का उपयोग करने की आवश्यकता है, तो आप ssh-copy-id: ssh-copy-id -i ~ / .ssh / id_rsa.pub user@192.168.200.10
FinC McFinger

1

सर्वरए में सार्वजनिक कुंजी को जनरेट करें

$ 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

या

  • Id_rsa.pub खोलें, सामग्री की प्रतिलिपि बनाएँ
  • Rsync कमांड में एक ही उपयोगकर्ता का उपयोग करके सर्वरबी में लॉगिन करें
  • ServerB में, सामग्री को संलग्न करें ~/.ssh/authorized_keys। यदि मौजूद नहीं है तो फ़ाइल बनाएँ। सुनिश्चित करें कि फ़ाइल मोड 700 है।

0

ये सभी 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 के माध्यम से डिलीट हो सकता हूँ, इसलिए केवल संबंधित फाइल ट्रांसफर की जाती है।

केवल जब हस्तांतरण समाप्त हो जाता है तो मैं पुराने संस्करण को हटा देता हूं।

देखा। सफलता।


-1

पते में उपयोगकर्ता को चिह्नित करना बेहतर होगा

ssh-copy-id -i ~/.ssh/id_rsa.pub <user_in_server>@192.168.1.100

2
हालांकि यह प्रश्न का उत्तर दे सकता है, यह एक बेहतर उत्तर होगा यदि आप कुछ स्पष्टीकरण प्रदान कर सकते हैं कि ऐसा क्यों होता है।
DavidPostill

इसके अलावा वाक्य रचना। मेरा मानना ​​है कि यह एक कमांड प्रतिस्थापन के रूप में कुछ इस तरह से उपयोग किया जाता है: rsync -aAVx $(ssh-copy-id -i /home/myusername/.ssh/id_rsa.pub)फिर सभी excludesऔर --deleteआदि मैंने इसे अभी तक काम नहीं किया है लेकिन यह सबसे निकटतम है जिसे मैंने देखा है। माना जाता है कि आपको यह करना होगा भले ही आप पहले से sshऔर scpलक्ष्य सर्वर पर कर सकते हैं , और rsync डेमॉन को चलाने की आवश्यकता है क्योंकि यह सामान्य sftp प्रारूप का उपयोग नहीं करता है। मैं अब भी खोज रहा हूं।
5
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.