नए वातावरण के आसान सेटअप के लिए id_rsa.pub प्रकाशित करना?


20

नई मशीनों और वातावरणों पर पासवर्ड रहित SSH की स्थापना को आसान बनाने के लिए, क्या कोई कारण है कि id_rsa.pubफ़ाइल (सिर्फ कुंजी जोड़ी का सार्वजनिक आधा) वेब पर कहीं प्रकाशित नहीं हो सकती है? उदाहरण के लिए एक dotfiles GitHub रिपॉजिटरी में।

मुझे पता है कि:

  • id_rsaफ़ाइल (कुंजी युग्म के निजी आधा) ध्यान से रक्षा की जानी चाहिए और
  • कुंजी जोड़ी को पासफ़्रेज़ के साथ संरक्षित किया जाना चाहिए

लेकिन मेरी खोजों ने ऐसी कोई स्पष्ट सलाह नहीं दी है जिसे इसकी अनुमति या प्रोत्साहन दिया गया हो।

जिज्ञासा से बाहर, एक ही सलाह पासफ़्रेज़ के बिना कीपर के लिए पकड़ होगी?


2
हालांकि यह सामान्य मामले में सुरक्षित हो सकता है (ठीक से उत्पन्न कुंजी को संभालने के लिए), खामियां अतीत में मौजूद हैं (प्रसिद्ध डेबियन ओपनएसएसएच बग ) जिसने कुंजीस्पेस को गंभीर रूप से प्रतिबंधित किया और सार्वजनिक कुंजी के आधार पर निजी कुंजी का अनुमान लगाने योग्य छोड़ दिया। तो वहाँ हमेशा जोखिम है - आप कैसे जानते हैं कि आपका SSH कीजन समान दोष से ग्रस्त नहीं है?
बॉब

2
इसके लिए एक तंत्र पहले से मौजूद है: ssh-import-id
मिकी

तो आप मशीनों के बीच id_rsa.pub साझा कर सकते हैं?
फेडेरिको

जवाबों:


26

RSA को विशेष रूप से आपको उस सार्वजनिक कुंजी को साझा करने की अनुमति देने के लिए डिज़ाइन किया गया है, इसलिए हां, आप इसे प्रकाशित कर सकते हैं। यह बहुत समान है कि RSA प्रमाणपत्र के साथ x.509 (और SSL) कैसे काम करता है।

फ़ाइल को प्रकाशित करने से पहले, वास्तव में इसे देखें; केवल वही चीजें जिनमें "ssh-rsa" कीवर्ड और आधार 64-एन्कोडेड कुंजी हैं। आप इसे रखना चाहते हैं (मेरा मानना ​​है कि यह अब डिफ़ॉल्ट है)।

यह सच है कि कुंजी में पासफ़्रेज़ है या नहीं। एक पासफ़्रेज़ निजी कुंजी को एन्क्रिप्ट करता है और सार्वजनिक कुंजी को प्रभावित नहीं करता है।

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

मैं एक 4096-बिट कुंजी (निर्दिष्ट -b 4096) का उपयोग करने का सुझाव देता हूं , ताकि यह किसी के लिए सामान्य से अधिक कठिन हो (डिफ़ॉल्ट 2048 है) किसी के लिए आपकी सार्वजनिक कुंजी को निजी में बदलना। ऐसा करने में यह एकमात्र महत्वपूर्ण जोखिम है, और यह बहुत बड़ा नहीं है क्योंकि एल्गोरिथ्म विशेष रूप से इसे अव्यवहारिक बनाने के लिए डिज़ाइन किया गया है।


33

यह पहले से ही है। :) बस अपने Github प्रोफ़ाइल URL के अंत में ".keys" डालें, जैसे:

https://github.com/tjmcewan.keys


थान्ट वास्तव में दिलचस्प है। GitHub इसके लिए क्या खुलासा करता है?
ऋचाधनीष

सुविधा। :) यह एक सार्वजनिक कुंजी है, आखिरकार - यह साझा करने के लिए है। अब एक नए सहयोगी की कुंजी को पकड़ना और इसे अपने सर्वर में जोड़ना बहुत आसान है। आगे और पीछे ईमेल बचाता है।
tjmcewan

मुझे महसूस नहीं हुआ कि उन्होंने ऐसा किया है।
जेब

1
Github पर दिलचस्प खोज के लिए +1।
रेमंड ताउ

5

जबकि एक नियम मैं सार्वजनिक परियोजना खजाने में अपने स्वयं के विशिष्ट विन्यास डालने की अनुशंसा नहीं करते के रूप में (रेपो संभालने के लिए है हर किसी को और अपने विन्यास के लिए है अकेले तुम , यह सिर्फ एक छोटे से अशिष्ट है), सुरक्षा के प्रभाव बहुत कम हैं।

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

एक कॉर्नर केस अटैक वेक्टर है, जो शायद लागू नहीं होता है, लेकिन अगर आप डिबियन के साथ फ़ायस्को को याद करेंगे तो खुलकर खुलने वाले PRNG को तोड़ देगा , प्रभावित सिस्टम पर उत्पन्न कोई भी ssh कुंजी आसानी से अनुमानित है और इसकी सार्वजनिक कुंजी द्वारा पहचाना जा सकता है। तो उस स्थिति में, सार्वजनिक कुंजी प्रकाशित करना आपको परेशानी में डाल सकता है। या अधिक उचित रूप से, किसी भी चीज़ के लिए उस कुंजी का उपयोग करना आपको परेशानी में डाल सकता है।


वेक्टर 1. फिंगरप्रिंट टक्कर के बारे में कैसे? यह सार्वजनिक कुंजी से बहुत छोटा है; वेक्टर 2 मिम अटैक जैसे "उफ़ सर्वर को फिर से इंस्टॉल करना पड़ा, इसकी एक अलग कुंजी है, लेकिन कृपया किसी भी तरह लॉग इन करें" और दिए गए उपयोगकर्ता सार्वजनिक कुंजी के लिए नकली सफल प्रमाणीकरण (यदि यह संभव हो तो, मुझे यकीन नहीं है)

1

हां, आप अपने SSH पबियों को प्रकाशित कर सकते हैं। और आप DNS में SSHFP रिकॉर्ड का उपयोग करके सर्वर का एक फिंगरप्रिंट प्रकाशित कर सकते हैं ! उदाहरण के लिए, यदि आप किसी सर्वर की SSH कुंजी को अद्यतन / परिवर्तित करने की आवश्यकता है, तो यह वास्तव में आसान हो सकता है।

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