এসএসএইচ সংযোগগুলি কীভাবে ডিবাগ করবেন

How Debug Ssh Connections



এই টিউটোরিয়ালটি কিছু দ্রুত পদ্ধতি এবং কৌশলগুলি যা আপনি বিভিন্ন SSH সংযোগ নির্ণয়ের জন্য ব্যবহার করতে পারেন, যখন আপনি SSH- এর সাথে সংযোগ করতে পারবেন না, প্রমাণীকরণ ত্রুটিগুলি এবং এরকম হবে।

বিঃদ্রঃ: শুরু করার আগে, নিশ্চিত করুন যে ডিভাইসটি আপনি সংযোগ করতে চান তা অনলাইনে আছে এবং ত্রুটিটি ডিভাইসটি অনুপলব্ধ হওয়ার ফল নয়।







সমস্যা 1: SSH পরিষেবা চলছে না

এসএসএইচ সংযোগের ত্রুটির একটি সাধারণ কারণ হল দূরবর্তী হোস্টে পরিষেবা না চালানো। এটি দুর্ঘটনাক্রমে পরিষেবা বন্ধ হওয়ার কারণে বা সিস্টেম পুনরায় বুট করার পরে পরিষেবা শুরু না হওয়ার কারণে হতে পারে।



SSH পরিষেবা চলছে কিনা তা পরীক্ষা করতে, কমান্ড ব্যবহার করে সিস্টেম ম্যানেজার ব্যবহার করুন:



sudosystemctl অবস্থা sshd

নীচের স্ক্রিনশটগুলিতে দেখানো হিসাবে পরিষেবাটি চলছে কিনা তা উপরের কমান্ডকে রিপোর্ট করা উচিত।







সমাধান

পরিষেবাটি না চলার কারণে এসএসএইচ সমস্যাগুলি সমাধান করতে, পরিষেবাটি শুরু করতে সিস্টেমটি ব্যবহার করুন। যদি পরিষেবা ত্রুটির সাথে সাড়া দেয়, লগগুলি পরীক্ষা করুন এবং লগে রিপোর্ট করা সমস্যাগুলি ঠিক করুন।

পরিষেবা লগগুলি পরীক্ষা করতে নীচের কমান্ডটি ব্যবহার করুন।

খপ্পর 'sshd' /কোথায়/লগ/auth.log

Systemd ব্যবহার করে SSH পরিষেবা শুরু বা বন্ধ করতে নিচের কমান্ডটি ব্যবহার করুন।

sudosystemctl শুরু sshd

সমস্যা 2: অ-মানক বন্দরে SSH

এসএসএইচ সংযোগ ডিবাগ করার সময় দ্বিতীয় সাধারণ সমস্যাটি একটি অ-মানক পোর্টের ব্যবহার। যদি SSH ডিফল্ট পোর্ট 22 ব্যতীত অন্য কোন পোর্টে চলমান থাকে, তাহলে আপনি দূরবর্তী হোস্টের সাথে সংযোগ স্থাপন করবেন না যদি না আপনি স্পষ্টভাবে যে পোর্টে SSH চলমান তা নির্দিষ্ট করে দেন।

এসএসএইচ যে পোর্টে চলছে তা দেখতে, নীচের মতো নেটস্ট্যাটের মতো একটি সরঞ্জাম ব্যবহার করুন:

[শত শতcentos8]$sudo নেটস্ট্যাট -পিটিএলএন | খপ্পর ssh
tcp0 00.0.0.0:560.0.0.0:*শুনুন1131/sshd
tcp60 0:::56:::*শুনুন1131/sshd

উপরের আউটপুট দেখায় যে কোন পোর্টে SSH পরিষেবা চলছে। এই ক্ষেত্রে, এটি পোর্ট 56।

সমাধান

এই সমস্যাটি সমাধান করার জন্য, আপনি netstat থেকে তথ্য ব্যবহার করতে পারেন স্পষ্টভাবে আপনার ssh কমান্ডে পোর্টটি নির্দিষ্ট করতে:

sshব্যবহারকারীর নামআইপি -পি 56

সমস্যা 3: একই পোর্ট ব্যবহার করে অন্য পরিষেবা

SSH সংযোগ ত্রুটির আরেকটি কারণ হল যদি অন্য কোনো পরিষেবা বা প্রক্রিয়া SSH পরিষেবার মতো একই পোর্ট ব্যবহার করে। উদাহরণস্বরূপ, যদি SSH পোর্ট 80 (ভয়ানক ধারণা) এ চালানোর জন্য স্পষ্টভাবে নির্দিষ্ট করা থাকে, তাহলে Apache এর মত একটি পরিষেবা একই পোর্ট ব্যবহার করতে পারে।

অন্য কোনো প্রক্রিয়া SSH- এর মতো একই পোর্ট ব্যবহার করছে কিনা তা দেখতে, কমান্ড ব্যবহার করে লগগুলি পরীক্ষা করুন:

sudojournalctl-টিsshd

এই কমান্ডটি নীচে দেখানো ত্রুটিটি ফেরত দেওয়া উচিত, যা নির্দেশ করে যে অন্য প্রক্রিয়াটি SSH- আবদ্ধ পোর্ট ব্যবহার করে কিনা।

sshd[110611]: ত্রুটি: পোর্টে আবদ্ধ800.0.0.0 এ ব্যর্থ: ইতিমধ্যে ঠিকানাভিতরেব্যবহার

এটি নিশ্চিত করা ভাল যে পোর্ট বাইন্ডিং ত্রুটি অন্য পরিষেবা দ্বারা ঘটে, SELinux এর মতো নিরাপত্তা ব্যবস্থা নয়।

সমাধান

এই সমস্যা সমাধানের জন্য আপনি বিভিন্ন উপায় ব্যবহার করতে পারেন। এর মধ্যে রয়েছে:

প্রথমটি হল SSH পরিষেবাকে একটি ভিন্ন বন্দরে আবদ্ধ করা। আপনি SSH কনফিগ ফাইলটি সম্পাদনা করে এটি করতে পারেন। উদাহরণস্বরূপ, কমান্ডে দেখানো পোর্ট এন্ট্রি পোর্ট 3009 এ পরিবর্তন করুন:

sudo ন্যানো /ইত্যাদি/ssh/sshd_config
বন্দর3009

এই সমস্যা সমাধানের জন্য আপনি ব্যবহার করতে পারেন এমন আরেকটি পদ্ধতি হল SSH পোর্ট ব্যবহার করে পরিষেবা বন্ধ করা। উদাহরণস্বরূপ, পোর্ট 80 ব্যবহার করে অ্যাপাচি পরিষেবা বন্ধ করুন:

sudosystemctl স্টপ httpd
sudosystemctl httpd নিষ্ক্রিয় করে

সমস্যা 4: ফায়ারওয়াল

আপনি যদি উপরের সমস্ত পদ্ধতি চেষ্টা করে থাকেন এবং এখনও SSH সংযোগ না পান, তাহলে আপনি সমস্যার পরবর্তী সম্ভাব্য কারণগুলিতে যেতে পারেন: ফায়ারওয়াল বিধিনিষেধ। আপনি যে ফায়ারওয়াল পদ্ধতি (UFW বা Iptables) ব্যবহার করছেন তার উপর নির্ভর করে, আপনাকে নিশ্চিত করতে হবে যে ফায়ারওয়াল SSH সংযোগের অনুমতি দেয়।

সমাধান

ফায়ারওয়াল নিয়মগুলি বিস্তৃত এবং সিস্টেম কনফিগারেশনের উপর নির্ভর করে পরিবর্তিত হতে পারে। সুতরাং, আমি প্রতিটি দিক কভার করতে পারি না। যাইহোক, UFW ফায়ারওয়ালে SSH পরিষেবা অনুমোদিত তা নিশ্চিত করার জন্য নিম্নলিখিতটি একটি সহজ সমাধান।

sudoufw অনুমতি দেয়<ssh_port> /tcp

আপনি সমস্ত UFW নিয়ম পুনরায় সেট করতে পারেন এবং আবার শুরু করতে পারেন। এটি আপনাকে স্ক্র্যাচ থেকে ফায়ারওয়াল সংযোগগুলির সমস্যা সমাধানের অনুমতি দেবে।

sudoufw রিসেট

সমস্যা 5: অক্ষম পাসওয়ার্ড লগইন

কখনও কখনও আপনি পাসওয়ার্ড লগইন গ্রহণ না করার জন্য SSH কনফিগার করতে পারেন এবং শুধুমাত্র পাবলিক-কী প্রমাণীকরণ ব্যবহার করতে পারেন। এটি একটি সমস্যা সৃষ্টি করতে পারে যদি সর্বজনীন কী সার্ভারে উপলব্ধ না থাকে অথবা আপনার ব্যক্তিগত কী জোড়াটি না থাকে।

পাসওয়ার্ড লগইন অনুমোদিত কিনা তা যাচাই করার জন্য, ssh কনফিগারটিকে এইভাবে বিড়াল করুন:

[শত শতসেন্টোস 8]$sudo খপ্পরপাসওয়ার্ড প্রমাণীকরণ/ইত্যাদি/ssh/sshd_config
#পাসওয়ার্ড প্রমাণীকরণ হ্যাঁ
পাসওয়ার্ড প্রমাণীকরণহ্যাঁ
# পাসওয়ার্ড প্রমাণীকরণ। আপনার PAM কনফিগারেশনের উপর নির্ভর করে,
# PAM প্রমাণীকরণ, তারপর এটি সক্ষম করুন কিন্তু PasswordAuthentication সেট করুন

উপরের আউটপুট দেখায় যে পাসওয়ার্ড লগইন অনুমোদিত।

সমাধান

উপরের সমস্যাটি সমাধান করতে, আপনি দুটি পদ্ধতি ব্যবহার করতে পারেন:

প্রথমে, যদি আপনার মানটি নাতে সেট করা থাকে তবে পাসওয়ার্ড প্রমাণীকরণ মানটি হ্যাঁতে পরিবর্তন করুন এবং ssh পরিষেবাটি পুনরায় চালু করুন।

অন্য পদ্ধতি হল একটি ssh কী-মান জোড়া তৈরি করা এবং সার্ভারে লগ ইন করার জন্য এটি ব্যবহার করা। কিভাবে ssh কী-মান জোড়া তৈরি করতে হয় তা জানতে, নিম্নলিখিত নির্দেশিকাটি ব্যবহার করুন।

https://linuxhint.com/find-ssh-public-key/

https://linuxhint.com/use-ssh-copy-id-command/

উপসংহার

এই দ্রুত গাইডে, আমরা SSH সংযোগের ত্রুটির প্রধান কারণগুলি এবং কীভাবে সেগুলি সমাধান করতে পারি তা নিয়ে আলোচনা করেছি। যদিও এই নির্দেশিকাটি সাধারণ সমস্যাগুলি অন্তর্ভুক্ত করে, আপনি কনফিগারেশন এবং অনুমতিগুলির উপর ভিত্তি করে আপনার সিস্টেমের জন্য নির্দিষ্ট ত্রুটিগুলি খুঁজে পেতে পারেন।