2009-10-31 4 views
37

मैं ऐसे नेटवर्क पर काम करता हूं जहां आईपी पते पर सिस्टम अक्सर बदल जाएंगे। वे वर्कबेंच पर और बाहर ले जाया जाता है और डीएचसीपी उन्हें प्राप्त आईपी निर्धारित करता है।लिनक्स पर एसएसएच: स्थानीय सबनेट (ज्ञात_होस्ट्स) पर मेजबानों के लिए होस्ट कुंजी जांच अक्षम करना

होस्ट कुंजी कैशिंग/चेकिंग को अक्षम करने के लिए यह सरल नहीं लगता है कि मुझे हर बार सिस्टम से कनेक्ट करने की आवश्यकता होने पर ~/.ssh/known_hosts को संपादित करने की आवश्यकता नहीं है।

मुझे मेजबान प्रामाणिकता की परवाह नहीं है, वे सभी 10.x.x.x नेटवर्क सेगमेंट पर हैं और मैं अपेक्षाकृत निश्चित हूं कि कोई भी मुझे एमआईटीएम नहीं कर रहा है।

क्या ऐसा करने के लिए कोई "उचित" तरीका है? मुझे परवाह नहीं है कि यह मुझे चेतावनी देता है, लेकिन मुझे रोकता है और मुझे उस आईपी के लिए मेरी ज्ञात_होस्ट प्रविष्टि को फ्लश करने के कारण हर बार परेशान होता है और इस परिदृश्य में यह वास्तव में कोई सुरक्षा प्रदान नहीं करता है क्योंकि मैं शायद ही कभी सिस्टम से एक या दो बार से कनेक्ट करता हूं और फिर आईपी एक और प्रणाली को दिया जाता है।

मैंने ssh_config फ़ाइल में देखा और देखा कि मैं समूह स्थापित कर सकता हूं ताकि बाहरी मशीनों से कनेक्ट करने की सुरक्षा को संरक्षित किया जा सके और मैं केवल स्थानीय पते की जांच को अनदेखा कर सकता हूं। यह इष्टतम होगा।

खोज से मुझे इस मामले पर कुछ बहुत ही मजबूत राय मिली हैं, "इसके साथ गड़बड़ न करें, यह सुरक्षा के लिए है, बस इसके साथ सौदा करें" से "यह सबसे बेवकूफ चीज है जिसे मैंने कभी सौदा किया है साथ, मैं बस इसे बंद करना चाहता हूं "... मैं बीच में कहीं हूँ। मैं सिर्फ कुछ ही मिनटों में फ़ाइल से पता लगाने के बिना अपना काम करने में सक्षम होना चाहता हूं।

धन्यवाद।

उत्तर

9

आप OpenSSH के प्रयोग कर रहे हैं मान लिया जाये कि, मेरा मानना ​​है कि आप known_hosts में जाँच की जा रही मेजबान आईपी को रोकने के लिए

CheckHostIP no 

विकल्प सेट कर सकते हैं। आदमी पृष्ठ से:

CheckHostIP

इस ध्वज सेट है, तो 'हां', ssh (1) अतिरिक्त known_hosts फ़ाइल में मेजबान आईपी पते की जांच करेगा। यह एसएसएच को यह पता लगाने की अनुमति देता है कि होस्ट की कुंजी DNS स्पूफ़िंग के कारण बदल गई है या नहीं। यदि विकल्प 'नहीं' पर सेट है, तो चेक निष्पादित नहीं किया जाएगा। डिफ़ॉल्ट 'हां' है।

+0

मैं मेजबान 10.0.0 के साथ कॉन्फ़िग फ़ाइल के नीचे करने के लिए एक अनुभाग जोड़ दिया है पर अधिक जानकारी। * और उसके नीचे मैं CheckHostIP कोई डाल क्या आपको पता है कि मुझे वहां अन्य सभी सेटिंग्स डालने की ज़रूरत है या यदि यह उपरोक्त * होस्ट के अतिरिक्त है? मुझे तब तक इंतजार करना पड़ेगा जब तक कि मैं इस प्रणाली में लॉग इन नहीं करता हूं जिसे यह सुनिश्चित करने के लिए "उपयोग" आईपी पता जारी किया गया है। यदि यह काम करता है तो मैं आपका जवाब स्वीकार करूंगा। धन्यवाद। – C4colo

+0

ऐसा प्रतीत नहीं होता है कि यह चाल 100% है ... सुनिश्चित नहीं है कि, मुझे इसके साथ थोड़ा और खेलना होगा और देखें कि क्या मैं इसे वही कर सकता हूं जो मैं चाहता हूं। – C4colo

+0

"100%" से आपका क्या मतलब है? क्या यह कभी-कभी काम करता है लेकिन दूसरों को नहीं? –

80

यह विन्यास मैं अपने कभी बदलते EC2 मेजबान के लिए उपयोग करते हैं:

[email protected]:~$ cat ~/.ssh/config 
Host *amazonaws.com 
     IdentityFile ~/.ssh/keypair1-openssh 
     IdentityFile ~/.ssh/keypair2-openssh 
     User ubuntu 
     StrictHostKeyChecking no 
     UserKnownHostsFile /dev/null 

यह मेजबान पुष्टि StrictHostKeyChecking no अक्षम कर देता है और यह भी एक लगातार फाइल करने के लिए की पहचान मेजबान बचत से ssh को रोकने के लिए एक अच्छा हैक का उपयोग करता है UserKnownHostsFile /dev/null ध्यान दें कि एक अतिरिक्त मूल्य के रूप में मैंने डिफ़ॉल्ट उपयोगकर्ता को जोड़ा है जिसके साथ मेजबान से जुड़ना है और कई अलग-अलग निजी कुंजी की पहचान करने का विकल्प शामिल है।

+1

वाह, वह/dev/null हैक शानदार है। मैं हमेशा भूल जाता हूं कि लिनक्स पर स्पष्ट रूप से सरल चीजें कैसे हो सकती हैं। धन्यवाद। – C4colo

+7

यदि वह समाधान आपके लिए काम करता है तो कृपया इस प्रश्न के उत्तर के रूप में एक वैध उत्तर स्वीकार करें, कृपया याद रखें कि अन्य लोग इस प्रश्न पृष्ठ पर जायेंगे। अगर कुछ अभी भी आपके लिए काम नहीं करता है तो कृपया टिप्पणियों में एक और प्रश्न पोस्ट करें। –

+2

यदि मैं UserKnownHostsFile को/dev/null पर सेट करता हूं, तो मुझे यह चेतावनी हर बार मिलती है 'चेतावनी: ज्ञात मेजबानों की सूची में स्थायी रूप से '10 .9.8.7' (आरएसए) जोड़ा गया। ' इसे बंद करने का कोई तरीका? –

8

मुझे यह खोजने में थोड़ी देर लग गई। मैंने देखा है कि सबसे आम उपयोग-मामले तब होता है जब आपको दूरस्थ नेटवर्क पर एसएसएच सुरंग मिलती है। यहां सभी समाधानों ने चेतावनियां उत्पन्न कीं जो मेरी नागियो स्क्रिप्ट को तोड़ दीं।

विकल्प मैं जरूरी था:

NoHostAuthenticationForLocalhost yes 

कौन सा, नाम भी पता चलता है के रूप में स्थानीय होस्ट पर लागू होता है।

2

आप अस्थायी रूप से या अपने SSH विन्यास फाइल बार बदले बिना इस अक्षम करना चाहते हैं, तो आप उपयोग कर सकते हैं:

ssh -o UserKnownHostsFile=/dev/null [email protected] 
संबंधित मुद्दे