Ssh में StrictHostKeyChecking अक्षम करें


14

मैं एक लिनक्स होस्ट से कनेक्ट करने का प्रयास कर रहा हूं sshऔर निम्नलिखित त्रुटि प्राप्त कर सकता हूं

RSA host key for 10.1.1.20 has changed and you have requested strict checking.

मैं इसे ओवरराइड करना चाहूंगा, लेकिन ऐसा करने के लिए विकल्पों का कोई संयोजन नहीं मिल सकता है।

मैंने शायद साल पहले StrictHostKeyChecking सेट किया था, लेकिन याद नहीं है कि कैसे।

मैंने परामर्श किया man sshजो मुझे सूचित करता है कि सिस्टम-वाइड कॉन्फ़िगरेशन फ़ाइल है /etc/ssh/ssh_configऔर प्रति-उपयोगकर्ता कॉन्फ़िगरेशन फ़ाइल के लिए डिफ़ॉल्ट ~/.ssh/configन तो मौजूद है।

EDIT मेरे प्रश्न को स्पष्ट करने के लिए, विकल्प स्पष्ट रूप से सेट है। मैं खोजने की कोशिश कर रहा हूं

  1. जहां विकल्प संग्रहीत हैं (मेरे पास मैन पेज में उल्लिखित फाइलें नहीं हैं, जो गलत प्रतीत होता है)।
  2. विकल्प कैसे बदलें।

मैं यह नहीं देख रहा हूं कि मैं जिस मुद्दे को लेकर काम कर रहा हूं (मुझे पता है कि मैं ज्ञात_होस्ट्स फ़ाइल को संपादित कर सकता हूं, लेकिन हर बार जब मैं नया सर्वर आज़माता हूं तो यह थकाऊ होता है)।


यह /etc/ssh_configमेरा है।
sborsky

@sborsky मेरे पास यह भी है (जो आदमी से अलग है) लेकिन सभी विकल्पों पर टिप्पणी की जाती है।
मिलिवर्स

इसका मतलब डिफ़ॉल्ट है, जो मैन पेज के अनुसार है ask। जब एक होस्ट कुंजी बदल जाती है, ssh क्लाइंट कनेक्ट नहीं होगा जब तक StrictHostKeyCheckingकि सेट नहीं किया जाता है no। यदि होस्ट कुंजी बहुत बार नहीं बदलती है, तो मैं आपको ~/.ssh/known_hostsकॉन्फ़िगर बदलने के बजाय इस एक होस्ट कुंजी को अपने से हटाने का सुझाव दूंगा।
sborsky

1
पहले आपको यह पता लगाना चाहिए कि इसे क्यों बदला गया। यदि आपने इसे नहीं बदला है, तो यह एक मीतम हमला हो सकता है, और फिर आपको निश्चित रूप से इस मेजबान कुंजी की अनुमति नहीं देनी चाहिए!
डिस्प्ले नेम

साइड नोट - किसी दिए गए होस्ट के लिए सारे रिकॉर्ड निकालने के बाद भी .ssh/known_hostsमैंने चेतावनी प्राप्त करना जारी रखा जब तक कि मुझे किसी अन्य फ़ाइल में अपमानजनक पंक्ति का पता नहीं चला .ssh/known_hosts2। जाहिरा तौर पर OS X दोनों का उपयोग करता है
billynoah

जवाबों:


18

वर्तमान उपयोगकर्ता के लिए OS X पर सख्त होस्ट जाँच को अक्षम करने के लिए, ~ / .ssh / config बनाएँ या संपादित करें और निम्नलिखित पंक्तियाँ जोड़ें:

Host [IP Address] 
   StrictHostKeyChecking no
   UserKnownHostsFile=/dev/null

आपके स्थानीय नेटवर्क में मेजबानों के लिए एक विशिष्ट उदाहरण हो सकता है:

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

Ssh के आपके उपयोग के आधार पर मैं सभी मेजबानों के लिए सख्त होस्ट कुंजी जाँच अक्षम करने की अनुशंसा नहीं करता।

यदि आप अपनी पसंद के संपादक के साथ 10.1.1.20 ओपन ~ / .ssh / ज्ञात_होस्ट के लिए प्रविष्टि निकालना चाहते हैं और संबंधित पंक्ति "10.1.1.20 ssh-rsa public-key $ " को हटा दें


/ Dev / null लाइन के बिना भी काम करने लगता है।
जॉन २०

6

आप बस इसे आज़मा सकते हैं क्योंकि यह बिना कंफ़ेद्दी के है, सिर्फ कमांडलाइन पर:

ssh -o StrictHostKeyChecking=no hostname

लेकिन मुझे नहीं लगता कि यह सब आपकी जरूरत है। यदि आप सभी होस्ट की जाँच को अनदेखा करना चाहते हैं, तो आपको known_hostsफ़ाइल सेट करने की आवश्यकता है /dev/nullताकि कभी भी कुछ जमा न हो:

ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null hostname

या में /etc/ssh_config:

StrictHostKeyChecking no
UserKnownHostsFile /dev/null

1 ने अभी भी मुझे कनेक्ट करने की अनुमति नहीं दी, लेकिन ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null hostnameकिया। मुझे अभी भी नहीं मिल रहा है, जहां StrictHostKeyChecking सेट है!
मिलिविज

यह "हाँ" के लिए डिफॉल्ट करता है इसलिए इसे लागू करने के लिए कहीं भी सेट करने की आवश्यकता नहीं है।
जकूजी सेप

दस्तावेज में कहा गया है कि यह हां में चूक करता है
Milliways

एक समाधान के रूप में चुनने से मदद मिलेगी अगर यह आपकी समस्या को हल करने में मदद करता है;)
जकूज़ी
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.