অসাধারণ! এবার আমি আরও বিস্তারিতভাবে, প্রতিটি কমান্ডের ব্যাখ্যা সহ করে দেখাচ্ছি — কীভাবে:
- একজন ইউজার (যেমন
rootবাtanvir) এর জন্য SSH Key তৈরি করবেন - কীভাবে সেই Key সার্ভারে বসাবেন
- এবং কীভাবে পাসওয়ার্ড ছাড়াই SSH দিয়ে লগইন করবেন।
🔐 SSH Key Authentication – কীভাবে কাজ করে?
SSH Key Authentication হলো এক ধরনের ডিজিটাল “চাবি” পদ্ধতি। এটি দুইটি অংশে ভাগ করা:
- 🔑 Private Key — আপনার কম্পিউটারে থাকে, গোপন
- 🌍 Public Key — সার্ভারে থাকে, পাবলিক
যখন আপনি লগইন করার চেষ্টা করেন, তখন সার্ভার আপনার Private Key দিয়ে যাচাই করে নেয়, এবং যদি মিল খায় — আপনাকে পাসওয়ার্ড ছাড়াই এক্সেস দেয়।
🔰 পর্ব: Root ও অন্য ইউজার (tanvir) এর জন্য SSH Key সেটআপ (সম্পূর্ণ ব্যাখ্যাসহ)
🧭 ধাপ ১: Windows এ SSH Key তৈরি করা (Key Generation)
ssh-keygen -t rsa -b 4096 -C "root@yourvps"
🔍 ব্যাখ্যা:
| অংশ | মানে |
|---|---|
ssh-keygen | SSH Key জেনারেট করার টুল |
-t rsa | কী টাইপ RSA (ভালো সিকিউরিটি) |
-b 4096 | ৪০৯৬ বিটের কী – বেশি নিরাপদ |
-C | একটি মন্তব্য (comment/email) যেন চেনা যায় |
➡️ এটি জিজ্ঞাসা করবে:
Enter file in which to save the key (/c/Users/oleetech/.ssh/id_rsa):
🔸 আপনি চাইলে নির্দিষ্ট নাম দিন, যেমন:
/c/Users/oleetech/.ssh/id_rsa_root
এরপর দুইটি ফাইল তৈরি হবে:
| ফাইল | ব্যাখ্যা |
|---|---|
id_rsa_root | Private Key (শুধু আপনার কাছে থাকবে, গোপন!) |
id_rsa_root.pub | Public Key (সার্ভারে বসাতে হবে) |
🧭 ধাপ ২: Public Key সার্ভারে বসানো (root ইউজার-এর জন্য)
🔹 Step 2.1: VPS-এ লগইন (root পাসওয়ার্ড দিয়ে)
ssh root@your-vps-ip
🔹 Step 2.2: .ssh ফোল্ডার তৈরি ও পারমিশন দিন
mkdir -p ~/.ssh
chmod 700 ~/.ssh
ব্যাখ্যা:
mkdir -p ~/.ssh→.sshনামের হিডেন ফোল্ডার তৈরি করেchmod 700→ Owner যেন লিখতে-পড়তে চালাতে পারে; অন্য কেউ কিছু না পারে
🔹 Step 2.3: Public Key বসান
nano ~/.ssh/authorized_keys
➡️ আপনার Windows থেকে id_rsa_root.pub ফাইলটি খুলে পুরো key কপি করুন
➡️ nano তে পেস্ট করুন
➡️ Save করুন: Ctrl + O → Enter
➡️ Exit: Ctrl + X
🔹 Step 2.4: পারমিশন ঠিক করা
chmod 600 ~/.ssh/authorized_keys
মানে:
Owner যেন শুধু এটি পড়তে ও লিখতে পারে। অন্য কেউ কিছু করতে পারবে না।
✅ এখন আপনি Windows থেকে এই কমান্ড দিয়ে পাসওয়ার্ড ছাড়াই root হিসেবে লগইন করতে পারবেন:
ssh -i ~/.ssh/id_rsa_root root@your-vps-ip
| অংশ | ব্যাখ্যা |
|---|---|
-i | কোন Private Key ব্যবহার করবেন |
root@your-vps-ip | কাকে ও কোথায় লগইন করবেন |
🧭 ধাপ ৩: অন্য ইউজার (যেমন tanvir) এর জন্য একই ধাপে
🔹 Step 3.1: tanvir তার Windows-এ SSH Key বানাবে:
ssh-keygen -t rsa -b 4096 -C "tanvir@yourcompany.com"
➡️ path দিন:
/c/Users/tanvir/.ssh/id_rsa_tanvir
➡️ পাবেন:
id_rsa_tanvir(Private)id_rsa_tanvir.pub(Public)
🔹 Step 3.2: root হয়ে tanvir-এর .ssh তে Public Key বসাবেন
mkdir -p /home/tanvir/.ssh
chmod 700 /home/tanvir/.ssh
nano /home/tanvir/.ssh/authorized_keys
➡️ id_rsa_tanvir.pub কপি করে সেখানে পেস্ট করুন
chmod 600 /home/tanvir/.ssh/authorized_keys
chown -R tanvir:tanvir /home/tanvir
✅ এখন tanvir Windows থেকে লগইন করবে:
ssh -i ~/.ssh/id_rsa_tanvir tanvir@your-vps-ip
✅ এবং পাসওয়ার্ড আর লাগবে না!
🔐 যদি .ssh/config ব্যবহার করেন:
nano ~/.ssh/config
Host myserver-root
HostName your-vps-ip
User root
IdentityFile ~/.ssh/id_rsa_root
Host myserver-tanvir
HostName your-vps-ip
User tanvir
IdentityFile ~/.ssh/id_rsa_tanvir
➡️ তাহলে এইভাবে connect করা যাবে:
ssh myserver-root
ssh myserver-tanvir
✅ উপসংহার:
| প্রশ্ন | উত্তর |
|---|---|
| SSH Key ব্যবহার করলে পাসওয়ার্ড লাগবে না কেন? | কারণ সার্ভার Public Key দেখে আপনার Private Key দিয়ে যাচাই করে নেয় |
| Key নিরাপদ কেন? | কারণ এটি asymmetrical encryption (private key leak না হলে কেউ এক্সেস পাবে না) |
| একাধিক ইউজার কিভাবে? | প্রতির জন্য আলাদা Key বানিয়ে তাদের authorized_keys এ যুক্ত করে দিন |
| পারমিশন ঠিক না থাকলে? | সার্ভার Key কে বিশ্বাস করবে না, এক্সেস দিবে না |
চাইলে আমি এটা .pdf, .docx বা ভিডিও টিউটোরিয়াল হিসেবে বানিয়ে দিতে পারি
আপনি শুধু বলুন, কোন ফরম্যাটে চাই! ✅
পরবর্তী ধাপে চাইলে SSH Port Change বা Firewall Setup দেখাবো!