मैं अपने ssh सर्वर को 2048-बिट RSA कुंजियों से बड़ी कुंजियों में अपग्रेड करने का प्रयास कर रहा हूं, क्योंकि सिफारिशें जल्द ही 2048-बिट कुंजियों को चरणबद्ध करने की हैं।
मैंने एक नई कुंजी उत्पन्न की, फिर इसे sshd config में जोड़ा, जैसे:
HostKey / etc / ssh / ssh_host_rsa_key (पुरानी 2k- बिट कुंजी पहले) HostKey / etc / ssh / ssh_host_rsa4096_key (नई बड़ी कुंजी 2 )
पुनः आरंभ sshd
करने के बाद, मैं होस्ट को ssh'd करता हूं, मुझे पहचान में बदलाव की चेतावनी नहीं मिलती है, हालांकि नए को भी कैश नहीं किया जाता है ~/.ssh/known_hosts
। अगर मैं लाइनों को विपरीत क्रम में रखता हूं, तो मुझे पहचान बदल गई चेतावनी मिलती है। इसी तरह, जब मैं एक ed25519 कुंजी जोड़ता हूं, तो कोई बात नहीं कि मैं इसे किस क्रम में रखता हूं, क्लाइंट ज्ञात होस्ट फ़ाइल में नई कुंजी नहीं जोड़ता है।
ऐसा लगता है कि SSH होस्ट कुंजी रोलओवर को असंभव बनाता है — यह विश्वास करना मुश्किल है कि वास्तव में मामला है, हालांकि, सुरक्षा को देखते हुए नियमित रूप से उन्नयन कुंजी की आवश्यकता होती है।
मुझे पता है कि आप बस कुंजी को स्वैप कर सकते हैं, फिर प्रत्येक ग्राहक ssh-keygen -R
को पुरानी कुंजी को हटाने के लिए चलाने की आवश्यकता है , फिर मैन्युअल रूप से सत्यापित करें और नई कुंजी को स्वीकार करें- लेकिन यह एक वास्तविक दर्द है, खासकर यदि आपके पास बहुत सारे क्लाइंट हैं जो कनेक्ट करते हैं या प्रशासन नहीं करते हैं सभी ग्राहक। उल्लेख नहीं करने के लिए, यदि आप ग्राहकों को प्रशासित नहीं करते हैं, तो एक बहुत अच्छा मौका है कि वे वास्तव में मेजबान कुंजी की जांच नहीं करेंगे और इसके बजाय केवल वाई मारा- इसलिए सुरक्षा में सुधार करने का प्रयास वास्तव में आपको मानव-में खोल देगा। इसके बजाय मध्य-हमला।
क्या SSH होस्ट कुंजी उन्नयन कार्य करने का कोई तरीका है? यही है, ग्राहकों को नई अधिक सुरक्षित कुंजी सीखनी चाहिए (और उम्मीद की अप्रचलित कुंजी को भी सीखना चाहिए)। और मेजबान कुंजी दिए बिना मैन-इन-द-बीच की चेतावनी को बदल दिया।