ओपनश कुंजी और पोटीन कुंजी के बीच क्या अंतर है?


48

मैंने पाया है कि ssh-keygen("ssh" पैकेज) puttygen"पोटीन" पैकेज से अलग-अलग कुंजी पैदा करता है ।

यदि मैं ssh-keygenकुछ ssh- सर्वरों के साथ सार्वजनिक और निजी कुंजियाँ बनाता हूँ, तो वे मेरी कुंजियाँ स्वीकार नहीं करेंगे। अगर मैं puttygenकेवल एक सर्वर के साथ कुंजी बनाता हूं तो इसे स्वीकार करते हैं।

क्यों नहीं linux repositories इसके लिए कुछ सामान्य समाधान (पैकेज) प्रस्तावित करते हैं? मुझे एक और पैकेज ssh-3.2.9.1 मिला है जो पोटीन के साथ काम करने वाली चाबियां बनाता है। लेकिन एसएसएच में कोई हल क्यों नहीं है?


1
शुरुआत के लिए PuTTYGen चाबियाँ बदलने के लिए स्पष्ट रूप से प्रदान करता है । तो देशी प्रारूप जो OpenSSH और PuTTY कुंजी को स्टोर करने के लिए उपयोग करते हैं, अलग हैं। हालाँकि, समर्थित एल्गोरिदम संगत हैं। एक अनुमान है कि आपने पुट्टीगैन में उत्पन्न कुंजी के लिए बिट्स की संख्या (जैसे डीएसए 1024 बिट की आवश्यकता होती है ) देने की अनुमति दी है या वैकल्पिक रूप से आपने RSA-1 जैसा कुछ चुना है। अधिकांश सर्वर इन दिनों अक्षम हो गए होंगे। दुर्भाग्य से यह प्रश्न वास्तव में नहीं बताया गया है कि आपने क्या प्रयास किया और क्या अपेक्षा की।
0xC0000022L

जवाबों:


47

ओपनएसएसएच एसएसएच प्रोटोकॉल का वास्तविक तथ्य है। यदि PuTTY और OpenSSH अलग हैं, तो PuTTY वह है जो असंगत है।

यदि आप ssh-keygenडिफ़ॉल्ट विकल्पों के साथ ओपनएसएसएच के साथ एक कुंजी उत्पन्न करते हैं, तो यह लगभग हर सर्वर के साथ काम करेगा। एक सर्वर जो इस तरह की कुंजी को स्वीकार नहीं करता है, वह एसएसएच के एक अलग कार्यान्वयन का उपयोग करके, या एक अजीब प्रतिबंधात्मक तरीके से कॉन्फ़िगर किया जाएगा। गैर-डिफ़ॉल्ट प्रकार की कुंजियों को कुछ सर्वरों पर समर्थित नहीं किया जा सकता है, विशेष रूप से ECDSA कुंजी सत्र की स्थापना को बहुत तेज़ करती हैं, लेकिन केवल OpenSSH के हाल के संस्करणों द्वारा समर्थित हैं।

PuTTY एक अलग कुंजी फ़ाइल स्वरूप का उपयोग करता है। यह अपने स्वयं के प्रारूप और ओपनएसएसएच के प्रारूप के बीच परिवर्तित करने के लिए उपकरणों के साथ आता है .ppk

यह ssh-3.2.9.1 आपको मिला एक व्यावसायिक उत्पाद है जिसका अपना अलग निजी कुंजी प्रारूप है। ओपनएसएसएच के बजाय इसका उपयोग करने का कोई कारण नहीं है, यह केवल कम संगत हो सकता है, इसे भुगतान करने की आवश्यकता होती है, और वहां इसका उपयोग करने के तरीके के बारे में शून्य ट्यूटोरियल है।


24

अधिकांश लिनक्स डिस्ट्रोस लिनक्स के puttyलिए उपलब्ध हैं। आप puttyलिनक्स की तरफ स्थापित कर सकते हैं और puttygen.ppk फ़ाइलों को नियमित ssh स्टाइल की फाइलों में बदलने के लिए उपयोग कर सकते हैं (जिन्हें PEM फाइलें कहा जाता है - भले ही उन्हें फ़ाइल नाम में .pem नहीं मिलता है)।

puttygen id_dsa.ppk -O private-openssh -o id_dsa

नोट: आप puttygenssh स्टाइल PEM फ़ाइलों को वापस आयात करने के लिए भी उपयोग कर सकते हैं putty

PuTTY के लेखक ने सरलता का विकल्प चुना, इसलिए सार्वजनिक और निजी कुंजी जो पोटीन / ssh 2 कुंजी प्रमाणीकरण द्वारा उपयोग की जाने वाली अंतर्निहित सुरक्षा को बनाते हैं, एकल स्वामित्व .ppk फ़ाइल में संग्रहीत की जाती हैं। आमतौर पर इन कुंजियों को ssh द्वारा 2 अलग-अलग फ़ाइलों के रूप में बनाए रखा जाता है।

लिनक्स पर मुख्य फाइलें आमतौर पर निर्देशिका .ssh में रखी जाती हैं।

इस स्टैक ओवरफ्लो प्रश्न में यहां रूपांतरण प्रक्रिया का अच्छा अवलोकन दिया गया है: PEM को PPK फ़ाइल प्रारूप में कनवर्ट करें

पोटीन के लेखक भी puttyउपयोगकर्ता मैनुअल में .ppk फ़ाइलों का उपयोग करने के लिए अपने तर्क पर चर्चा करते हैं । आप इसके बारे में यहाँ खंड here.२.१२ में पढ़ सकते हैं।


क्या आपका मतलब है कि मेरे लिनक्स अप्रचलित और कमजोर SSH-1 है (यदि मैं पोटीन का उपयोग नहीं करता हूं)? और क्या यह सस्ती है? SSH-1 की कमजोरियों का वर्णन विकिपीडिया
यारलिनक्स

नहीं यकीन है कि तुम कहाँ मिल गया। नहीं, तुम ठीक नहीं हो। आप लिनक्स के किस संस्करण का उपयोग कर रहे हैं? लिनक्स डिस्ट्रो क्या आप उपयोग कर रहे हैं? अपने लिनक्स संस्करण का पता लगाने के लिए इस कमांड को चलाएँ uname -a:। लिनक्स डिस्ट्रो lsb_release -a:।
SLM

मैं Ubuntu 12.04 का उपयोग करता हूं। क्या आपका मतलब है कि SSH-2 के अलग-अलग प्रारूप हैं? मैं सिर्फ पैकेज और कमांड के नाम से भ्रमित हूं जो "ssh" है।
यारलिनक्स

समझा। आप जिस ssh टूल का जिक्र कर रहे हैं, वह आमतौर पर खुलने वाले पैकेज का हिस्सा होता है। इस सॉफ़्टवेयर के संस्करण का SSH-1 और SSH-2 से कोई लेना-देना नहीं है जिसका आप उल्लेख कर रहे हैं। वह शब्दावली (SSH-1 और SSH-2) उस कुंजी फ़ाइल के प्रकार का उल्लेख कर रही है, जिसके साथ आप काम कर रहे हैं। जब तक आप ओपनश के हाल के संस्करणों का उपयोग कर रहे हैं, तब तक यह फ़ाइल प्रकार आपके लिए कोई समस्या नहीं होनी चाहिए।
SLM

क्या चाबियों के तीन अलग-अलग प्रारूप हैं? OpenSSH, ssh.com और PuTTY?
यरलिनक्स

12

वे दोनों एसएसएच प्रोटोकॉल के संस्करण 2 के लिए "आरएसए कुंजी जोड़ी" संग्रहीत करते हैं और इसे परस्पर रूप से परिवर्तित किया जा सकता है; हालाँकि, वास्तविक संग्रहीत प्रारूप अंतर के बारे में:

से https://www.chiark.greenend.org.uk/~sgtatham/putty/wishlist/key-formats-natively.html

PuTTY मुख्य प्रारूप के लाभ हैं:

  • सार्वजनिक कुंजी के आधे को प्लेनटेक्स्ट में संग्रहीत किया जाता हैOpenSSH का निजी कुंजी प्रारूप संपूर्ण कुंजी फ़ाइल को एन्क्रिप्ट करता है , ताकि क्लाइंट को आपके पासफ़्रेज़ के लिए आपसे पूछना पड़े , इससे पहले कि वह कुंजी के साथ कुछ भी कर सके। विशेष रूप से, इसका मतलब यह है कि इससे पहले कि यह प्रमाणीकरण के लिए सर्वर को सार्वजनिक कुंजी की पेशकश कर सकता है, आपके पासफ़्रेज़ के लिए पूछना होगा । PuTTY का प्रारूप सार्वजनिक कुंजी को प्लेनटेक्स्ट में संग्रहीत करता है और केवल प्राइवेट हाफ को एन्क्रिप्ट करता है, जिसका अर्थ है कि यह सार्वजनिक रूप से सर्वर को कुंजी भेज सकता है और यह निर्धारित कर सकता है कि सर्वर उस कुंजी के साथ प्रमाणीकरण स्वीकार करने के लिए तैयार है या नहीं, और यह केवल कभी पूछेगा यदि यह वास्तव में करने की आवश्यकता है तो पासफ़्रेज़।

    मुझे लगता है कि ओपनएसएसएच एक पढ़ेगा.pubइस उद्देश्य के लिए फ़ाइल यदि वह निजी कुंजी फ़ाइल के साथ दिखाई देती है, लेकिन यह भ्रम का एक स्रोत है जितनी बार सुविधा है (मैंने देखा है कि लोग एक निजी कुंजी फ़ाइल को प्रतिस्थापित करते हैं .pubऔर उसके साथ एक आउट-डेट की तारीख छोड़ देते हैं , और फिर बहुत हो सकते हैं परिणामी SSH प्रमाणीकरण प्रक्रिया द्वारा भ्रमित!)।
  • कुंजी पूरी तरह से छेड़छाड़ की है। प्लेटेक्स्ट में सार्वजनिक कुंजी को संग्रहीत करने वाले मुख्य प्रारूप छेड़छाड़ के हमले के प्रति संवेदनशील हो सकते हैं, जिसमें कुंजी के सार्वजनिक आधे हिस्से को इस तरह से संशोधित किया जाता है कि हस्ताक्षर किए गए कुंजी के साथ निजी आधे के बारे में जानकारी लीक हो जाती है। इस कारण से, PuTTY के मुख्य प्रारूप में एक MAC (संदेश प्रमाणीकरण कोड) है, जो पासफ़्रेज़ से बंद है, और कुंजी के सार्वजनिक और निजी हिस्सों को कवर करता है।इस प्रकार, हम सार्वजनिक कुंजी को प्लेटेक्स्ट में उपलब्ध होने की सुविधा प्रदान करते हैं, लेकिन हम तुरंत छेड़छाड़ के हमले में किसी भी प्रयास का पता लगाते हैं, सुरक्षा और सुविधा का संयोजन देते हैं जो मुझे नहीं लगता कि किसी अन्य कुंजी प्रारूप में पाया जाता है। एक साइड बेनिफिट के रूप में, मैक कुंजी की टिप्पणी को भी कवर करता है, जिससे किसी भी संभावित शरारत को रोका जा सकता है यदि कोई व्यक्ति दो चाबियों को स्वैप कर सकता है और टिप्पणियों को इंटरचेंज कर सकता है।

    सार्वजनिक कुंजी को एन्क्रिप्ट रखने के लिए ओपनएसएसएच का दृष्टिकोण संभव हैइस प्रकार के हमले के खिलाफ कुछ सुरक्षा भी प्रदान करते हैं, लेकिन यह स्पष्ट नहीं है कि यह उचित सुरक्षा प्रदान करता है: गोपनीयता के लिए डिज़ाइन किया गया एन्क्रिप्शन अक्सर ऐसे तरीके छोड़ता है जिसमें एन्क्रिप्ट किए गए डेटा को हमलावर द्वारा उपयोगी रूप से संशोधित किया जा सकता है। वास्तविक अखंडता संरक्षण के लिए आप एक वास्तविक समर्पित मैक चाहते हैं, जो कि ठीक करने के लिए डिज़ाइन किया गया है।

[ जोर दिया]

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