जब आप किसी रिमोट सर्वर के संपर्क में आने के लिए ssh का उपयोग करने का प्रयास कर रहे हैं, तो आपको एक त्रुटि प्राप्त हो सकती है जो "कोई मिलान करने वाली कुंजी विनिमय विधि नहीं मिली" पढ़ती है, इससे पहले कि यह आपको एक सुझाव दे कि आप किस एन्क्रिप्शन एल्गोरिदम का उपयोग करना चाहेंगे। जब भी आप त्रुटि का अनुभव करते हैं, आप रिमोट सर्वर से कनेक्ट नहीं कर पाएंगे। यह प्रक्रिया वास्तव में निराशाजनक हो सकती है, लेकिन त्रुटि इतनी आम है कि आप अक्सर Unix प्रकारों को इसके बारे में बात करते हुए पाएंगे कि वे इसका अनुभव कर रहे हैं और जंगल से बाहर निकलने के लिए वही सलाह दे रहे हैं।
त्रुटि को ठीक करने के लिए निम्नलिखित विधियों का परीक्षण उन सभी चीजों पर किया गया है जिन पर ssh काम करता है, लेकिन आप संभवतः इस समस्या को Unix और Linux सिस्टम पर पाएंगे। यदि आप Windows या कुछ विदेशी पर ssh चला रहे हैं तो आपको उसी प्रक्रिया का उपयोग करके इसे ठीक करने में सक्षम होना चाहिए, लेकिन आप पा सकते हैं कि स्विच विकल्प थोड़े अलग हैं।
विधि 1: सर्वर से पुनः संपर्क करना और कुंजियों को पुनर्जीवित करना
कुछ भी करने से पहले, सुनिश्चित करें कि आप त्रुटि को पुन: उत्पन्न कर सकते हैं। कभी-कभी यह त्रुटि संदेश सिर्फ इसलिए होता है क्योंकि कोई रिमोट-साइड सेवा है जो वर्तमान में नहीं चल रही है, जिसे बीच में ठीक किया जा सकता है। जब हम एक वर्चुअल मशीन में ssh चला रहे थे जिसने एक फर्जी सर्वर पते पर कनेक्शन की अनुमति दी थी जिसे डॉक्यूमेंटेशन-अनुमोदित example.org पर सेट किया गया था, लेकिन आप एक वास्तविक नेटवर्किंग पते को प्रतिस्थापित करना चाहेंगे।

यदि आप अभी भी इसे प्राप्त करते हैं, तो कमांड प्रॉम्प्ट से ssh-keygen -A के साथ कुंजियों को पुनर्जीवित करने का प्रयास करें। यह उस कैश को रीफ्रेश करेगा जिसे ssh एप्लिकेशन रिमोट सर्वर से कनेक्ट करने के लिए उपयोग करता है। इसके अलावा, आप service ssh restart चलाकर ssh को पुनरारंभ करने का प्रयास करना चाह सकते हैं और इसे कुछ क्षण दे सकते हैं।
यदि आपको अभी भी समस्याएं हो रही हैं, तो इसका मतलब है कि सर्वर और क्लाइंट कभी भी सही प्रोटोकॉल का उपयोग करने के लिए शर्तों पर नहीं आ पाए। OpenSSH प्रोटोकॉल की एक चक्करदार सरणी को लागू करता है, लेकिन यह इनमें से कई को अक्षम कर देता है क्योंकि वे अब समझौता किए गए और इसलिए असुरक्षित होने के लिए जाने जाते हैं। आप समीकरण के सर्वर छोर पर सभी ssh पैकेजों को अपडेट करना चाहेंगे, इसलिए सुनिश्चित करें कि सिस्टम एडमिनिस्ट्रेटर को पता है कि क्या हो रहा है। यदि यह आपका अपना सर्वर है, तो उन्हें अपडेट करने के लिए एक क्षण लें।
यदि यह कोई विकल्प नहीं है और आप एक समझौता किए गए एल्गोरिदम का उपयोग करने के खतरों को पहचानते हैं, तो इस त्रुटि संदेश को बायपास करने का एक क्लाइंट-साइड तरीका है।
विधि 2: OpenSSH में लीगेसी विकल्प सक्षम करना
उनके प्रस्ताव: शब्दों के बाद त्रुटि संदेश क्या पढ़ता है, यह देखने के लिए कि रिमोट सर्वर किस एल्गोरिदम को पसंद करता है। जबकि अधिकांश सिस्टम को openssh7 का उपयोग करना चाहिए, जिसमें पहले से ही पुराने अप्रचलित diffie-hellman-group1-sha1 तकनीक को अक्षम कर दिया गया है, आपको sha1 का उपयोग करने के लिए कहा जाएगा यदि वे अभी भी openssh6 या कुछ इसी तरह पर अटके हुए हैं।
ssh -oKexAlgorithms=+diffie-hellman-group1-sha1 testhost@example.org चलाएं जिसमें रिमोट सर्वर का वास्तविक नेटवर्किंग होस्ट या IP पता हो, इसे क्लाइंट-साइड पर इस मुद्दे को ठीक करने के लिए। यदि यह समस्या को ठीक करता है, तो यह एक पुराने sha1-आधारित प्रोटोकॉल की तलाश में था जिससे कनेक्ट किया जा सके। इस पुराने sha1-आधारित समाधान को एक अच्छे कारण के लिए अक्षम किया गया था, लेकिन आप nano या vim एडिटर्स का उपयोग करके ~/.ssh/config फ़ाइल को खोलकर और लाइनें जोड़कर इसे और अधिक स्थायी रूप से बायपास कर सकते हैं:
Host example.org
KexAlgorithms +diffie-hellman-group1-sha1
ध्यान रखें कि आप यह सुनिश्चित करना चाहेंगे कि प्लस साइन वहां है क्योंकि इसका मतलब है कि ssh अधिक सुरक्षित डिफ़ॉल्ट को बदलने के बजाय जोड़ देगा। जब सर्वर पैकेज अपडेट करता है, तो आप ज्यादातर मामलों में सुरक्षित प्रोटोकॉल का उपयोग करेंगे।
यदि आपको पहले कोई त्रुटि मिली जिसमें sha1 संस्करण के बजाय ssh-dss प्रोटोकॉल का उल्लेख था, तो आप इसके बजाय अपने होस्ट के नाम के बाद इस कमांड को आज़मा सकते हैं: ssh -oHostKeyAlgorithms=+ssh-dss, जो यदि यह काम करता है तो आपको ~/.ssh/config फ़ाइल को फिर से संपादित करना होगा। होस्ट लाइन के बाद, एक टैब और निम्नलिखित जोड़ें:
HostKeyAlgorithms +ssh-dss
याद रखें कि sha1 प्रणाली की तरह ही, ssh-dss कुंजी को इससे जुड़ी अत्यंत तर्कसंगत सुरक्षा समस्याओं के लिए अप्रचलित कर दिया गया है। इसका उपयोग आपके कनेक्शन में कमजोरियों को पेश कर सकता है, इसलिए इसे केवल अस्थायी फिक्स के रूप में देखा जाना चाहिए यदि वह भी। सुनिश्चित करें कि सर्वर को जल्द से जल्द अपडेट किया जाए।