SSH सर्वर फ़िंगरप्रिंट कहाँ से उत्पन्न / संग्रहीत किया जाता है?


44

मैंने ओपनश-सर्वर स्थापित किया और इसके साथ एक कुंजी बनाई ssh-keygen। मैंने तब स्थानीय पोर्ट अग्रेषण का उपयोग करके इसका परीक्षण करने का प्रयास किया ssh -L 8080:www.nytimes.com:80 127.0.0.1। हालाँकि, यह आदेश जो मुख्य फिंगरप्रिंट प्रदान करता है, वह कुंजी फिंगरप्रिंट नहीं है जो मुझे तब मिलता है जब मैं करता हूं ssh-keygen -l। यहां तक ​​कि अगर मैं अपनी .ssh निर्देशिका को हटाता हूं, तो भी मुझे वही फिंगरप्रिंट मिलते हैं, जो मैंने बनाया नहीं है ssh-keygen। क्या मेरे सिस्टम पर एक और कुंजी है? यह कुंजी कहां है? मैं ओपन-सर्वर द्वारा उपयोग के लिए इस कुंजी का चयन कैसे कर सकता हूं?

जवाबों:


58

जब आप SSH सत्र बनाते हैं, तो दो अलग-अलग प्रमुख जोड़े (प्रत्येक जोड़ी के लिए एक फिंगरप्रिंट के साथ) शामिल होते हैं। एक उपयोगकर्ता की कुंजी है जो में संग्रहीत है ~/.ssh। उपयोगकर्ता की SSH कुंजी पहचान कभी-कभी किसी अन्य कंप्यूटर पर लॉगिन करने के लिए क्रेडेंशियल के रूप में उपयोग की जाती है (यदि आपने कुंजी आधारित लॉगिन सेट किया है)।

अन्य SSH सर्वर की कुंजी है। जब आप पहली बार किसी भिन्न सर्वर से कनेक्ट होते हैं तो यह वह कुंजी होती है जिसे आप फिंगरप्रिंट के लिए देखते हैं। इस कुंजी की पहचान का उपयोग यह सुनिश्चित करने के लिए किया जाता है कि आप SSH सर्वर में लॉग इन कर रहे हैं जिसका आप इरादा करते हैं। यह महत्वपूर्ण है यदि आप पासवर्ड का उपयोग कर रहे हैं क्योंकि आप गलती से हमलावर मशीन में प्रवेश करने का प्रयास नहीं करना चाहेंगे: जब आप इसे टाइप करेंगे तो हमलावर को आपका पासवर्ड मिल जाएगा। फिर हमलावर उस मशीन में प्रवेश कर सकता है जिसे आपने सोचा था कि आप लॉग इन कर रहे हैं। सेवा! (यह एक "मध्यम हमले में आदमी" के रूप में जाना जाता है ) एक SSH सर्वर कुंजी का उपयोग स्वयं की पहचान करने के लिए करता है जब आप इसमें लॉगिन करते हैं /etc/ssh/और आमतौर पर कुछ ऐसा नाम रखते हैं ssh_host_rsa_key

आप वास्तव में बदल सकते हैं जहां एसएसएच सर्वर सेटिंग के साथ फाइल में कुंजी की तलाश करता है ।/etc/ssh/sshd_configHostKey /path/to/host/key

डिफ़ॉल्ट रूप से, ssh-keygenवर्तमान उपयोगकर्ता के लिए एक कुंजी बनाएगा, जो डिफ़ॉल्ट रूप से, में संग्रहीत किया जाएगा ~/.ssh। उपयोगकर्ता कुंजी और सर्वर कुंजी का प्रारूप समान है; अंतर यह है कि उन्हें कहाँ रखा गया है और क्या /etc/ssh/sshd_configउनका HostKeyनिर्देशन इंगित है। जब आप ओपनश-सर्वर पैकेज स्थापित करते हैं, तो यह स्वचालित रूप से सर्वर का उपयोग करने के लिए कुंजी उत्पन्न करता है। यही वह जगह है जहां अज्ञात फिंगरप्रिंट के साथ चाबियाँ आईं। यदि आप SSH सर्वर (RSA *) कुंजी का फिंगरप्रिंट देखना चाहते हैं, तो आप चला सकते हैं ssh-keygen -lf /etc/ssh/ssh_host_rsa_key.pub

* अलग-अलग एन्क्रिप्शन एल्गोरिदम हैं। हर एक अलग कुंजी का उपयोग करता है। सामान्य डीएसए (कमजोर), आरएसए (पुराने डिफ़ॉल्ट), और ईसीडीएसए (नए डिफ़ॉल्ट) हैं।


1
"सेट ssh फ़िंगरप्रिंट" के लिए Google परिणाम, भले ही वे शब्द तकनीकी रूप से गलत हों, आश्चर्यजनक रूप से खराब हैं। अच्छा है कि मैंने उनके बीच यह पाया।
बार्ट वैन ह्युकेलोम

4
इसके लिए धन्यवाद। एक नोट: 'sudo' की आवश्यकता नहीं है, यदि आप सार्वजनिक कुंजी पर ssh-keygen इंगित करते हैं। यही कारण है: ssh-keygen -lf /etc/ssh/ssh_host_rsa_key.pub। इसके अलावा, मेरी स्थापना के लिए, यह ECDSA कुंजी थी, न कि RSA कुंजी, जो ssh डेमन उपयोग कर रहा था, इसलिए वास्तव में मुझे जो चलाना था वह था ssh-keygen -lf /etc/ssh/ssh_host_ecdsa_key.pub
जॉन क्लेमेंट्स

क्या मेरी पुरानी हार्ड ड्राइव से सार्वजनिक कुंजी प्राप्त करने और मेरे नए इंस्टॉलेशन में उनका उपयोग करने, उन्हें / etc / ssh में ओवरराइट करने के साथ कोई समस्या है? एक कुंजी एक कुंजी सही है?
एडम

@ एडम मुझे ऐसा करने में कोई समस्या नहीं है। जब आपको दूरस्थ रूप से लॉगिन करने पर मुद्दों से बचने में मदद करनी चाहिए और कुंजी बदल गई है (जो तब होता है जब आप एक नई कुंजी को फिर से स्थापित करते हैं, तो उत्पन्न होती है।)
अज़ेंडेल

3
जब मैं sshपहली बार 14.04 से एक होस्ट से जुड़ता हूं , तो यह एमडी 5 फिंगरप्रिंट दिखाता है। ssh-keygen16.04 शो एमडी 5 फिंगरप्रिंट बनाने के लिए , आपको -E md5विकल्प का उपयोग करना चाहिए ।
जर्नो

14

SSH होस्ट कीज़ को स्टोर किया जाता है /etc/ssh/, जिसे आपको आमतौर पर चुनने की आवश्यकता नहीं होती है। इन कुंजियों को तब उत्पन्न किया गया था जब ओपनश-सर्वर पैकेज स्थापित किया गया था।

आप कुंजियों के फ़िंगरप्रिंट को सूचीबद्ध कर सकते हैं, ssh-keygen -l -f /etc/ssh/ssh_host_key.pubहालांकि इसके लिए आपको प्रत्येक सार्वजनिक कुंजी के लिए इसे दोहराना होगा।

 


7

ssh-keygenआपके सर्वर पर SSH फिंगरप्रिंट उत्पन्न नहीं करता है। यह SSH सर्वर द्वारा जनरेट किया गया है। ssh-keygenआपके सिस्टम के लिए एक सार्वजनिक / निजी कुंजी जोड़ी बनाता है जिसे आप बाद में अपने SSH सर्वर तक पहुंचने के लिए उपयोग कर सकते हैं बिना सर्वर पर एक सादा-पाठ पासकोड प्रसारित किए।

आपके सर्वर का फ़िंगरप्रिंट स्पष्ट रूप से आपके द्वारा सार्वजनिक / निजी कुंजी जोड़ी के फिंगरप्रिंट के रूप में प्रदर्शित नहीं होगा, क्योंकि वे एक दूसरे से अलग हैं।


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