2013-08-08 4 views
26

मैं एक ऐसी प्रणाली बनाने का प्रयास कर रहा हूं जो स्वचालित रूप से एक सर्वर से फ़ाइलों को कई सर्वरों पर कॉपी करता है। इसके हिस्से के रूप में मैं rsync का उपयोग कर रहा हूं और एसएसएच कुंजी स्थापित कर रहा हूं, जो सही तरीके से काम करता है।rsyncing करते समय स्वचालित कुंजी को स्वचालित रूप से कैसे स्वीकार करें?

मेरी समस्या यह है कि जब यह पहली बार किसी नए सर्वर से कनेक्ट करने का प्रयास करता है तो यह एक पुष्टिकरण मांगेगा। क्या स्वचालित रूप से स्वीकार करने का कोई तरीका है?

उदाहरण आदेश/आउटपुट:

rsync -v -e ssh * [email protected]:/data/ 
The authenticity of host 'someip (someip)' can't be established. 
RSA key fingerprint is somerandomrsakey. 
Are you sure you want to continue connecting (yes/no)? yes 

उत्तर

26

अगर वे सही मायने में नई मेजबान हैं, और आप पहले से known_hosts की चाबी नहीं जोड़ सकते हैं (York.Sar के जवाब देखें), तो आप इस विकल्प का उपयोग कर सकते हैं :

-e "ssh -ओ StrictHostKeyChecking = नहीं"

+7

अधिक विशेष रूप से: -o StrictHostKeyChecking = नहीं या या तो/etc/ssh/ssh_config या ~/.ssh/config संपादित करें) –

+1

यह दृष्टिकोण सुरक्षा को कम करता है। किसी को तब तक इसका उपयोग नहीं करना चाहिए जब तक कि कोई अन्य तरीका न हो (उदा। लक्ष्य का आईपी और होस्टनाम लगातार बदल रहा हो)। –

+1

हमें इस विधि का उपयोग करने की आवश्यकता है (या 'ssh-keygen -R' और 'ssh-keyscan -H' के साथ कुंजी को हटाने और जोड़ने के रूप में हमारे मेजबान एडब्ल्यूएस पर हैं और हर रात नष्ट हो जाते हैं, फिर हर सुबह पुनर्निर्मित होते हैं - ऐसा लगता है कि ऐसा लगता है - ssh! –

46

आप इस तरह पहले से known_hosts को यह मेजबान के प्रमुख जोड़ सकते हैं:

+०१२३५१६४१०
ssh-keyscan $someip >> ~/.ssh/known_hosts 
+4

यह वास्तव में इसके आसपास काम करने के बजाय ओपी के प्रश्न का उत्तर देता है (और एसएसएच का उपयोग कर सिस्टम की पहचान करने के लिए मेजबान कुंजी का उपयोग करने के पूरे बिंदु को तर्कसंगत रूप से घुमाता है) – mxmader

+2

@mxmader - यह कैसे भिन्न होता है? आप अभी भी स्वचालित रूप से कह रहे हैं हाँ "मुझे इस कुंजी पर भरोसा है" - क्या वे समान रूप से खराब नहीं हैं? –

+2

@andybak: यह मेजबान कुंजी सत्यापन को बंद नहीं करता है, इसलिए आप एमआईटीएम से सुरक्षित हैं या इस तरह की smth जब तक कि आपके नेटवर्क पर पहले से समझौता नहीं किया गया है 'एसएसएच कुंजी का समय scan'। –

4

मुझे पता है कि यह 3 साल पहले पूछा गया था, लेकिन यह मेरी Google खोज के शीर्ष पर था और मैं अपने लिए सही तरीके से काम करने के लिए एक वाग्रेंट स्क्रिप्ट के बीच में इन समाधानों में से कोई भी प्राप्त करने में असमर्थ था। तो मैं यहां विधि को रखना चाहता था जिसे मैंने somewhere else पाया।

समाधान कोड के निम्नलिखित ब्लॉक के साथ ~/.ssh/config या /etc/ssh/ssh_config फ़ाइल को अपडेट करने के बारे में बात करता है।

एक विशेष मेजबान (जैसे, remote_host.com) के लिए जाँच होस्ट कुंजी को निष्क्रिय करने के लिए:

Host remote_host.com 
    StrictHostKeyChecking no 

सभी मेजबानों के लिए जाँच होस्ट कुंजी बंद करने के लिए कनेक्ट करने के लिए:

Host * 
    StrictHostKeyChecking no 

से बचने के लिए । कुंजी सत्यापन होस्ट करने, और नहीं 192.168.1 के लिए known_hosts फ़ाइल का उपयोग * सबनेट:

Host 192.168.0.* 
    StrictHostKeyChecking no 
    UserKnownHostsFile=/dev/null 

मैं इस HEL आशा पीएस कोई और जो इस मुद्दे में चलता है।

संबंधित मुद्दे