क्या एसएसएच की ज्ञात_होस्ट फ़ाइल से किसी विशेष होस्ट कुंजी को निकालना संभव है?
मैं आमतौर पर पूरे को हटा देता हूं known_hosts फ़ाइल, जिसे करने में मुझे कोई समस्या नहीं है, लेकिन जिज्ञासा से बाहर, क्या केवल एक प्रविष्टि को हटाना संभव है?
मैंने खोला known_hosts फ़ाइल, लेकिन मैं इसकी सामग्री को समझने के लिए संघर्ष कर रहा हूं ।
नीचे मेरे द्वारा सामना किया गया संदेश है, जिसके कारण मुझे यह प्रश्न पूछना पड़ा:
Add correct host key in /home/wissen16/.ssh/known_hosts to get rid of this message.Offending key in /home/wissen16/.ssh/known_hosts:1RSA host key for foo.com has changed and you have requested strict checking.Host key verification failed.
हां, आप सिर्फ एक कुंजी निकाल सकते हैं । बस इसे एक संपादक में खोलें और अपमानजनक लाइन को हटा दें । त्रुटि संदेश में कोलन के बाद की संख्या लाइन नंबर है, इसलिए यह आपके उदाहरण में -- लाइन 1 को हटाने की रेखा है । .
मैंने हाल ही में होस्ट कुंजी का उपयोग करना शुरू कर दिया है, लेकिन जब मैंने उनके साथ गड़बड़ कर दी है तो यह आम तौर पर प्रति पंक्ति एक कुंजी है इसलिए फ़ाइल का बैकअप लें और उन्हें एक बार में हटा दें जब तक कि आपको सही न मिल जाए । फिर दूसरों को वापस जोड़ें । यह करने के लिए एक लंबा रास्ता तय करना है, लेकिन काम करना चाहिए ।
उस त्रुटि के आधार पर, और बिना किसी विचार के, यह फ़ाइल में पहली होस्ट कुंजी हो सकती है जो समस्या है इसलिए फ़ाइल को विम के साथ खोलें
एसएसएच-कीजेन-आर होस्टनाम का उपयोग करना हमेशा काम नहीं करेगा । यदि आपके पास एसएसएच का एक नया संस्करण है जो एसएसएच-एजेंट अपहरण को रोकने के लिए होस्टनाम को "छुपा" रहा है, तो जाहिर तौर पर एसएसएच-कीजेन होस्टनाम को अनशैश करने में असमर्थ है ।
उदाहरण के लिए, मेरे पास बिल्ड-नोड -01 नामक एक होस्ट है और मैंने इससे जुड़ा है और कुंजी को स्वीकार किया है । फिर मैं इसे खरोंच से पुनर्निर्माण करता हूं, एक नया होस्ट फिंगरप्रिंट प्राप्त करता हूं और मैं फिर से कनेक्ट करने की कोशिश करता हूं, मुझे एक चेतावनी मिलेगी कि लाइन एक्स पर एक संघर्ष है (3 कहें) । मैं दौड़ता हूं ssh-keygen -R hostname, लेकिन अगली बार जब मैं कनेक्ट करने का प्रयास करता हूं तो मुझे अभी भी एक चेतावनी मिलती है कि कोई संघर्ष है । मैंने केवल यह पता लगाने के लिए फ़ाइल की जांच की कि होस्टनाम हैश किया गया था और दिखाया गया था [1] Bu4Ch@R@4D0M57uFF एक पठनीय होस्टनाम के बजाय ।
इस मामले में आपत्तिजनक होस्ट को सफलतापूर्वक हटाने का एकमात्र तरीका उपयोग करना था
sed -i 'xd' ~/.ssh/known_hosts
इस एसईडी को एक कदम आगे ले जाने के लिए, आप गलत लाइन को हटाने के मामले में ज्ञात_होस्ट का बैकअप बनाना चाह सकते हैं, इस मामले में बस एक जोड़ें । उस एक्सटेंशन के साथ बैकअप बनाने के लिए-आई विकल्प के लिए बीएके (या कोई एक्सटेंशन) । एसएसएच-कीजेन का उपयोग यह स्वचालित रूप से करता है ।
बस एक और साफ और आसान जवाब साझा करने के लिए मुझे अभी मिला । होस्टनाम को हटाना मेरे लिए बाहर है, क्योंकि ज्ञात_होस्ट फ़ाइल हैशेड है । हालाँकि, मैं त्रुटि संदेश में लाइन नंबर के आधार पर होस्ट प्रविष्टि को मैन्युअल रूप से संपादित कर सकता था । जैसा कि माइक स्कॉट ने पहले उल्लेख किया था, अपमानजनक होस्टनाम लाइन नंबर त्रुटि संदेश में है ।