আপনি যখন একটি রিমোট সার্ভারের সাথে যোগাযোগ করতে ssh ব্যবহার করার চেষ্টা করছেন, তবে আপনি একটি এরর পেতে পারেন যা পড়ছে "no matching key exchange method found" এরপর আপনাকে একটি সাজেশন দেবে যে আপনি কোন এনক্রিপশন অ্যালগরিদম ব্যবহার করতে চান। আপনি রিমোট সার্ভারের সাথে কানেক্ট করতে পারবেন না যখনই আপনি এই এররটি অনুভব করছেন। এই প্রসেসটি খুব ফ্রাস্ট্রেটিং হতে পারে, কিন্তু এররটি এতটাই সাধারণ যে আপনি প্রায়শই Unix টাইপের লোকেরা কীভাবে তারা এটি অনুভব করছে এবং উদ্ধার করার একই পরামর্শ দিচ্ছে তা বলে শুনবেন।
এরর ফিক্স করার নিচের পদ্ধতিগুলো সবকিছুর ওপর টেস্ট করা হয়েছে যেন ssh কাজ করে, কিন্তু আপনি সবচেয়ে বেশি এই সমস্যাটি Unix এবং Linux সিস্টেমে পাবেন। আপনি একই প্রসেস ব্যবহার করে এটিকে সংশোধন করতে পারবেন যদি আপনি উইন্ডোজ বা একজোটিক কিছুতে ssh চালাচ্ছেন, কিন্তু আপনি খুঁজে পেতে পারেন যে সইচ অপশনগুলো কিছুটা ভিন্ন।
পদ্ধতি ১: সার্ভারের সাথে পুনঃযোগাযোগ এবং কী রিজেনারেট করা
আপনি অন্য কিছু করার আগে, নিশ্চিত করুন যে আপনি এররটি রিপ্রডিউস করতে পারেন। কখনো কখনো এই এরর মেসেজটি শুধু কারণ আছে কিছু রিমোট-সাইড সার্ভিস যা বর্তমানে চলছে না, যা মাঝপথে সংশোধন হয়ে গিয়ে থাকতে পারে। আমরা যখন একটি ভার্চুয়াল মেশিনে ssh চালাচ্ছিলাম যা ডকুমেন্টেশন-অনুমোদিত example.org-এ সেট করা একটি বগাস সার্ভার ঠিকানার সাথে কানেকশন দিয়েছিল, কিন্তু আপনি একটি রিয়াল নেটওয়ার্কিং ঠিকানা প্রতিস্থাপন করবেন।

আপনি যদি এখনও এটি পান, তবে ssh-keygen -A কমান্ড প্রম্পট থেকে চেষ্টা করুন কী রিজেনারেট করতে। এটি ssh অ্যাপ্লিকেশন যা রিমোট সার্ভারের সাথে কানেক্ট করতে ব্যবহার করে সেই ক্যাশ রিফ্রেশ করবে। তারপর, আপনি service ssh restart চালিয়ে ssh রিস্টার্ট করার চেষ্টা করতে পারেন এবং কয়েক মুহূর্ত অপেক্ষা করতে পারেন।
আপনি যদি এখনও সমস্যায় পড়ে থাকেন, তবে এর মানে সার্ভার এবং ক্লায়েন্ট কখনো সঠিক প্রোটোকল ব্যবহার করার বিষয়ে একমত হতে পারেনি। OpenSSH ডিজি جنگল ব
যদি এটি অপশন না হয় এবং আপনি কমপ্রোমাইজড অ্যালগরিদম ব্যবহার করার ডেঞ্জারগুলো রিকগনাইজ করেন, তবে এই এরর মেসেজ বাইপাস করার একটি ক্লায়েন্ট-সাইড উপায় আছে।
পদ্ধতি ২: OpenSSH-এ লিগেসি অপশন ইনাবল করা
Their offer: শব্দের পর এরর মেসেজটি কী পড়ছে সেটি দেখুন যাতে রিমোট সার্ভার কোন অ্যালগরিদম পছন্দ করে। অধিকাংশ সিস্টেম openssh7 ব্যবহার করা উচিত, যেটি ইতিমধ্যে পুরনো অপ্রচলিত diffie-hellman-group1-sha1 টেকনোলজি ডিসেবল করে রেখেছে, কিন্তু আপনাকে sha1 ব্যবহার করতে বলা হবে যদি তারা এখনও openssh6 বা অনুরূপ কিছুতে আটকে থাকে।
ssh -oKexAlgorithms=+diffie-hellman-group1-sha1 testhost@example.org চালান আসল নেটওয়ার্কিং হোস্ট বা রিমোট সার্ভারের IP ঠিকানা দিয়ে এই ইশুকে ক্লায়েন্ট-সাইডে ফিক্স করতে। যদি এটি ইশু ফিক্স করে, তবে এটি sha1-ভিত্তিক পুরনো প্রোটোকল খুঁজছিল কানেক্ট করার জন্য। এই পুরনো sha1-ভিত্তিক সমাধানটি একটি ভালো কারণে ডিসেবল করা হয়েছিল, কিন্তু আপনি ন্যানো বা ভিম এডিটর ব্যবহার করে ~/.ssh/config ফাইলটি খুলে আরও স্থায়ীভাবে বাইপাস করতে পারেন এবং লাইনগুলো যোগ করতে পারেন:
Host example.org
KexAlgorithms +diffie-hellman-group1-sha1
মনে রাখবেন যে আপনাকে নিশ্চিত করতে হবে যে প্লাস চিহ্নটি আছে কারণ এর মানে ssh অпен্ড করবে নাকি আরও সুরক্ষিত ডিফল্টগুলো রিপ্লেস করবে। যখন সার্ভার প্যাকেজগুলো আপডেট করবে, আপনি অধিকাংশ কেসে সेफার প্রোটোকল ব্যবহার করবেন।
আপনি যদি sha1 ভার্সনের বদলে ssh-dss প্রোটোকোল উল্লেখ করে একটি এরর আগে পান, তবে আপনি বদলে এই কমান্ডটি আপনার হোস্টের নামের সাথে চেষ্টা করতে পারেন: ssh -oHostKeyAlgorithms=+ssh-dss, যা যদি কাজ করে তবে আপনাকে ~/.ssh/config ফাইলটি আবার এডিট করতে হবে। Host লাইনের পর, একটি ট্যাব এবং নিচের জিনিসটি যোগ করুন:
HostKeyAlgorithms +ssh-dss
মনে রাখবেন যে ঠিক sha1 সিস্টেমের মতো, ssh-dss কী অত্যন্ত রেশনাল সিকিউরিটি সমস্যায় ডিপ্রিকেট করা হয়েছে যা এর সাথে জড়িত। এটি ব্যবহার করলে আপনার কানেকশনে ভালনারেবিলিটি আনা যেতে পারে, তাই এটি শুধু একটি অস্থায়ী ফিক্স হিসেবে দেখা উচিত যদি তাও হয়। সার্ভার যত দ্রুত সম্ভব আপডেট করা হয় তা নিশ্চিত করুন।