UNIX पर मेरी निजी / सार्वजनिक SSH कुंजियाँ कहाँ हैं?


17

मैं यह समझना शुरू कर रहा हूं कि RSA और सार्वजनिक / निजी कुंजी सिस्टम कैसे काम करते हैं, और मैं सोच रहा था कि मेरी निजी और सार्वजनिक SSH कुंजी कहाँ संग्रहीत हैं। जब मैं अपने घर निर्देशिका में जाता हूं, और मैं अपनी .ssh निर्देशिका (cd। Ssh) ब्राउज़ करता हूं, तो मुझे केवल "ज्ञात_होस्ट" फ़ाइल दिखाई देती है, जो मुझे लगता है कि मुझे विभिन्न दूरस्थ SSH सर्वरों की सार्वजनिक कुंजी पता है।

मुझे ये कुंजियाँ कहाँ मिल सकती हैं? मुझे उन्हें इस तरह से बनाने की याद भी नहीं है, लेकिन जब से मैं पहले ही ssh कनेक्शन स्थापित कर चुका हूँ, वे कहीं न कहीं ज़रूर हैं।

मैं मैक OS 10.6 के साथ OpenSSH_5.2p1 का उपयोग कर रहा हूं।

धन्यवाद!

जवाबों:


15

~/.ssh/id_rsaऔर ~/id_rsa.pubआमतौर पर। लेकिन यह पालन नहीं करता है कि ssh को एक जोड़ी बनानी चाहिए और उन्हें बचाना चाहिए: ssh मूल रूप से SSL प्रोटोकॉल का उपयोग करता है, जो कि Diffie / Hellman की-एक्सचेंज एल्गोरिथ्म या कुछ वेरिएंट का उपयोग करके सत्र कुंजी स्थापित करता है । इसका अर्थ है कि कनेक्शन स्थापित करने वाला हैंडशेक सत्र कुंजी बनाता है और सत्र पूरा होने पर उसे छोड़ देता है।

एल्गोरिथ्म पर पढ़ें, यह काफी निफ्टी है: काफी सरल गणित का उपयोग करते हुए, यह कनेक्शन के दोनों सिरों को ज्ञात करता है, जो कि कनेक्शन पर कभी भी कुंजी भेजे बिना ।


क्या इसका मतलब यह है कि अगर मुझे SSH कुंजी उत्पन्न करने के लिए कभी नहीं कहा गया है कि RSA का उपयोग कभी नहीं किया गया है? दूसरे शब्दों में, कि सत्र कुंजी को साझा करने के लिए कुछ असममित एल्गोरिथ्म का उपयोग किया गया था, लेकिन यह कि कनेक्शन के लिए अस्थायी सार्वजनिक / निजी कुंजी मेरे कंप्यूटर पर संग्रहीत नहीं थीं?

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

@ मेली: नहीं। वे पहले स्थान पर नहीं बने थे। publickeyकई का केवल एक संभव प्रमाणीकरण तरीका है; यदि आप बस का उपयोग कर लॉग इन passwordया keyboard-interactive, पासवर्ड ही भेजा गया था। (नोट: उपयोगकर्ता कुंजी, होस्ट कुंजी और सत्र कुंजियों को भ्रमित न करें।)
user1686

@grawity हम यहाँ ज्यादातर सहमत हैं लेकिन थोड़ा सावधान रहें। डिफी-हेलमैन कुंजी विनिमय आरएसए और अन्य असममित एन्क्रिप्शन एल्गोरिदम से संबंधित है और अनिवार्य रूप से असममित है, क्योंकि एक्सचेंज के दोनों पक्षों के पास अंततः समझौते का अपना "आधा" है। उनके पास कुंजी के दो भाग हैं, और अंतिम कुंजी और इसे बनाने की सटीक प्रक्रिया सत्र के अंत में छोड़ दी जाती है। हालांकि, वे RSA जोड़ी के सार्वजनिक और निजी हिस्से नहीं हैं।
चार्ली मार्टिन

4

आपकी व्यक्तिगत सार्वजनिक और निजी ssh कुंजियाँ सामान्य रूप से संग्रहीत हैं:

$HOME/.ssh/id_dsa     (private key)
$HOME/.ssh/id_dsa.pub (public key)

या वे हो सकते हैं id_rsaऔर id_rsa.pubयदि आपने DSA कुंजियों के बजाय RSA कुंजियाँ बनाई हैं (OpenSSH दोनों रूपों का समर्थन करता है)।

लेकिन इससे पहले कि आप ssh कनेक्शन स्थापित कर चुके हैं इसका मतलब यह नहीं है कि आपके पास ssh कीज़ हैं। यदि sshकमांड आपकी व्यक्तिगत कुंजी नहीं ढूंढ पाती है, तो यह आपको रिमोट सिस्टम के लिए पासवर्ड के लिए संकेत देगा। यह कुंजियों का उपयोग करने से कम सुरक्षित है।

आपको सामान्यतया पासफ़्रेज़ के साथ अपनी ssh निजी कुंजी बनानी चाहिए। यदि आप इसे पासफ़्रेज़ के बिना बनाते हैं, तो आपकी निजी कुंजी की प्रतिलिपि प्राप्त करने वाला कोई व्यक्ति आपको प्रतिरूपित कर सकता है। ssh-agentहर बार जब आप इसका उपयोग करते हैं तो आप अपने पासफ़्रेज़ को फिर से दर्ज किए बिना पासफ़्रेज़ के साथ एक कुंजी का उपयोग कर सकते हैं।


2

यदि आपने कीपेयर नहीं बनाया है, तो आपके पास एक नहीं है

SSH2 ट्रैफ़िक को DH, ECDH एल्गोरिदम या GSSAPI कुंजी विनिमय का उपयोग करके स्थापित एक सममित सत्र कुंजी के साथ एन्क्रिप्ट किया गया है । डेटा को एन्क्रिप्ट करने के लिए न तो होस्ट कुंजी और न ही उपयोगकर्ता कुंजी का उपयोग किया जाता है - उनका एकमात्र उद्देश्य प्रमाणीकरण है

अब याद रखें कि एसएसएच कई प्रमाणीकरण विधियों का समर्थन करता है : इसके अलावा publickey, लगभग सभी सर्वर सरल passwordऔर / या स्वीकार करते हैं keyboard-interactive, जिसमें कोई महत्वपूर्ण पीढ़ी या उपयोग नहीं होता है - पासवर्ड को बस सत्यापन के लिए दूरस्थ सर्वर पर भेजा जाता है।

दूसरे शब्दों में, "चूंकि मैंने पहले से ही ssh कनेक्शन स्थापित कर लिया है, तो वे कहीं न कहीं होना चाहिए" गलत है - कनेक्शन स्थापित करने के लिए उपयोगकर्ता कीपेयर आवश्यक नहीं है


आप तो किया था एक कुंजी युग्म बनाने के लिए, यह संभावना में होगा ~/.ssh/id_*- उदाहरण के लिए, id_rsaडिफ़ॉल्ट आरएसए कुंजी युग्म, के लिए id_ecdsaECDSA के लिए, id_dsaDSA के लिए। हालांकि इन फ़ाइलें हो दोनों कुंजीयुग्म के निजी और सार्वजनिक भागों, सार्वजनिक भाग आमतौर पर स्वचालित रूप से एक अलग में निकाला जाता है id_*.pubसुविधा के लिए फ़ाइल ( id_rsa.pubके लिए id_rsaऔर इसी तरह)।

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