पिछले सभी उत्तरों के अलावा, यहां एक है जो उस कुंजी के साथ लॉग इन करने पर क्या किया जा सकता है, इस पर प्रतिबंध के साथ SSH कुंजी पर निर्भर करता है।
सर्वर A पर
यदि आप एक अलग उपयोगकर्ता बनाते हैं या अपने मौजूदा उपयोगकर्ता नाम में से एक का उपयोग करते हैं, तो इस पर यह कम महत्वपूर्ण है, हालांकि अगर यह मैं होता तो मैं एक अलग उपयोगकर्ता बनाता। मैं नीचे bkpuser
दिए गए अपने उदाहरणों में दोनों सर्वरों के लिए उपयोगकर्ता नाम का उपयोग करूंगा।
लॉग इन करते समय bkpuser
, बिना पासवर्ड के SSH कुंजी बनाएं।
सर्वर B पर
सक्षम PubkeyAuthentication
में sshd_config
।
उपयोगकर्ता बनाएँ bkpuser
। एक बहुत ही जटिल पासवर्ड सेट करें, या उस उपयोगकर्ता के लिए पासवर्ड लॉगिन को अक्षम करें (वास्तव में आप ऐसा कैसे करते हैं, यह इस बात पर निर्भर करेगा कि आप किस यूनिक्स और डिस्ट्रो पर चल रहे हैं)। मुद्दा यह है कि उपयोगकर्ता को केवल SSH कुंजी के साथ लॉग इन करना चाहिए। सुनिश्चित करें कि bkpuser
सभी निर्देशिकाओं तक पहुँच और फ़ाइल को आप बैकअप लेना चाहते हैं।
ए से ~bkpuser/.ssh/authorized_keys
बी पर बनाई गई कुंजी के सार्वजनिक भाग को कॉपी करें। कनेक्शन पर स्वचालित रूप से कमांड चलाने के लिए संपादित करें। उस कमांड को शेल स्क्रिप्ट का पॉइंटर नहीं होना चाहिए; इसके बजाय सीधे कुंजी में शेल स्क्रिप्ट डालें। एक सीमा भी शामिल करें ताकि कुंजी केवल सर्वर ए और किसी अन्य सर्वर से उपयोग की जा सके। नीचे दिए गए उदाहरण में, मैं सर्वर को आईपी पता दे रहा हूं 10.1.2.3
और मैं यह मान रहा हूं कि मैं जिन फाइलों का बैकअप लेना चाहता हूं, वे सभी के तहत हैं /data
।
from="10.1.2.3",no-port-forwarding,no-X11-forwarding,no-agent-forwarding,no-pty,command="cd /data;/usr/bin/tar -cf - *; /usr/bin/logger -t BACKUP -p daemon.info \"INFO: Backup-files on $HOST fetched from ${SSH_CLIENT%% *} by $USER\";" ssh-dss AA.....
सर्वर A पर
यदि आप @reboot
प्रविष्टियों में से एक क्रोन टैब का उपयोग कर रहे हैं , bkpuser
तो कमांड के साथ srontab में ऐसी प्रविष्टि जोड़ें ssh -i ~bkpuser/.ssh/id_dsa serverB > backup.tar.gz
। यदि यह उन लोगों की अनुमति नहीं देता है, तो इसे किसी भी समय सेट करें जैसे आप - यदि यह मेरा डेटा था, तो मैं शायद इसे दैनिक करूँगा।