जो संदेश आप देख रहे हैं, वह एक अलग मुद्दा है। यह आपसे यह पुष्टि करने के लिए कह रहा है कि जिस होस्ट से आप जुड़ रहे हैं वह वास्तव में वह है जिसकी आप अपेक्षा करते हैं। सर्वर से, आप फिंगरप्रिंट चलाकर प्राप्त कर सकते हैं ssh-keygen -l -f /etc/ssh/ssh_host_rsa_key.pub
। फिर, जब आप पहली बार दूरस्थ रूप से कनेक्ट कर रहे हैं, तो आप यह सुनिश्चित कर सकते हैं कि उंगलियों के निशान मेल खाते हैं।
मेजबान कुंजी, यहां कार्रवाई में देखी गई, मध्य हमलों में आदमी की समस्या को संबोधित करती है - शायद DNS को हटा दिया गया है, और आप अपने स्वयं के बजाय एक प्रतियोगी की मशीन से जुड़ रहे हैं। वह मशीन आपके क्रेडेंशियल्स को इकट्ठा करती है और पारदर्शी रूप से वास्तविक सर्वर से आपके कनेक्शन को जानती है, बिना आपकी जानकारी के चोरी करती है। यह सुनिश्चित करना कि होस्ट कुंजी मिलान ऐसा होने से रोकता है जब तक कि हमलावर ने वास्तव में आपके सर्वर की सार्वजनिक कुंजी चोरी नहीं की हो।
एक समस्या बनी हुई है, हालांकि - आप कैसे जानते हैं कि कौन सी कुंजी सही है? पहले कनेक्शन के बाद, सार्वजनिक कुंजी आपकी ~/.ssh/known_hosts
फ़ाइल में संग्रहीत होती है , इसलिए बाद के कनेक्शन ठीक हैं। लेकिन पहली बार, आपको या तो फिंगरप्रिंट प्राप्त करने के कुछ आउट-ऑफ-बैंड तरीके की आवश्यकता होती है, या फिर आप "TOFU" मॉडल का पालन करें: ट्रस्ट-ऑन-प्रथम-उपयोग।
लेकिन इसमें से किसी का भी पासवर्ड बनाम कीज़ से कोई लेना-देना नहीं है, सिवाय इसके कि चाबियां और पासवर्ड दोनों ही इस हमले के ज़रिए चुराए जा सकते हैं - एक मायने में, यह वह भेद्यता है जो आप पूछ रहे हैं।
वहाँ (कम से कम) तीन कारण पासवर्ड कुंजियों से भी बदतर हैं:
- उन्हें क्रूरता से मजबूर किया जा सकता है। एक विशिष्ट उपयोगकर्ता-चयनित 8-वर्ण पासवर्ड में अनुमान लगाने वाले एंट्रोपी के लगभग 30 बिट्स होते हैं। एक ssh सार्वजनिक / निजी कुंजी जोड़ी 1024 बिट या अधिक है। एक ssh कुंजी को ब्रूट-फोर्स करना प्रभावी रूप से असंभव है, लेकिन स्वचालित पासवर्ड अनुमान लगाना हर समय होता है।
- वे गूंगे हो सकते हैं। उपयोगकर्ता नियमित रूप से भयानक पासवर्ड का चयन करते हैं, यहां तक कि जगह में प्रतिबंध के साथ, और वे कई स्थानों पर कठिन पासवर्ड का उपयोग करते हैं। यह स्पष्ट रूप से हमलों को आसान बनाता है।
- पासवर्ड को रिमोट से चुराया जा सकता है। जब आप SSH का उपयोग कर रहे होते हैं, तो पासवर्ड तार पर एन्क्रिप्ट किया जाता है, लेकिन ssh सर्वर के लिए समझौता किए गए सिस्टम पर प्रतिस्थापित किया जाना बहुत आम है जो सभी पासवर्डों को लॉग करता है। चाबियों के साथ, निजी कुंजी स्थानीय प्रणाली पर रहती है और इसे कभी भी भेजा नहीं जाता है, और इसलिए इसे ग्राहक मशीन से समझौता किए बिना चोरी नहीं किया जा सकता है।
इसके अतिरिक्त, ssh कुंजियाँ सुविधा प्रदान करती हैं जब कुछ के साथ प्रयोग किया जाता है ssh-agent
- आपको हर बार फिर से प्रमाणित किए बिना कनेक्ट करने का परेशानी मुक्त संचालन मिलता है, जबकि अभी भी सुरक्षा का एक उचित स्तर बनाए रखता है।
दोनों के लिए पूछने में कोई महत्वपूर्ण लाभ नहीं है, क्योंकि जिस व्यक्ति के पास निजी कुंजी चोरी करने के लिए पर्याप्त पहुंच है, वह उपयोगकर्ता के पासवर्ड को भी आसानी से चुरा सकता है। यदि आपको इससे अधिक सुरक्षा की आवश्यकता है, तो RSA SecurID या WiKID जैसे दो-कारक प्रमाणीकरण प्रणाली पर विचार करें ।