Anwarul Islam
2 min readMar 3, 2020

--

SSH দিয়ে এক ক্লিকেই লগিন করুন আপনার রিমোট সার্ভারে

প্রতিনিয়তই আমাদেরকে প্রজেক্ট ডেপ্লয়মেন্ট এর জন্য রিমোট সার্ভারে লগিন করতে হয়। বিশেষ করে আমরা যারা AWS অথবা Google Cloud ব্যাবহার করে থাকি তাদের জন্য এটি অতি পরিচিত একটি টার্ম।

Image from Hostinger

এভাবে নিজের কম্পিউটার থেকে আরেকটা কম্পিউটার এক্সেস করার যেই সহজ মাধ্যম সেটি সফল হয় SSH এর মাধ্যমে। Secure Shell তথা SSH হচ্ছে একটি প্রোটোকল যেটির মাধ্যমে আমরা আরেকটি কম্পিউটার তথা রিমোট সার্ভারে প্রবেশ করতে পারি। এবং সার্ভারে বিভিন্ন কমান্ড রান করতে পারি।

আমি ইচ্ছা করলেই SSH দিয়ে অন্যজনের কম্পিউটার কিংবা সার্ভারে প্রবেশ করতে পারবোনা। এর জন্য কিছু ক্রেডেনশিয়ালস লাগবে যেগুলো আমাদেরকে ঐ সার্ভারে প্রবেশ করার অনুমতি দিবে। এই ক্রেডেনশিয়ালস গুলো সার্ভারের কম্পিউটার থেকে ভেরিফাই করে তারপর আমাদেরকে লগিন করানো হয়।

সার্ভারে লগিন করতে কি কি লাগে?

  • IP address
  • Username
  • Public Key/Private Key/Password

Public Key অথবা Private Key সার্ভার থেকে জেনারেট করে আমাদেরকে .pub অথবা .pem নামে একটি ফাইল দেয়া হয়। যেটি পাসওয়ার্ড এর পরিবর্তে ব্যাবহার করা যায়।

ধরা যাক আমাদের কাছে সব ক্রেডেনশিয়ালস আছে। এখন কিভাবে আমরা সার্ভারে লগিন করবো?

ssh -i privatekey.pem username@192.168.0.121

উপরের কমান্ডটি টার্মিনাল এ রান করলে আমরা সার্ভারে প্রবেশ করতে পারবো।

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

এই সমস্যা সমাধানের জন্য আমরা চাইলে একটি গ্লোবাল ssh config ফাইল লিখতে পারি। যেখানে প্রত্যেকটি সার্ভারের IP এবং Key পয়েন্ট করা থাকবে। এবং আমরা একটি সহজ কমান্ডের মাধ্যমে লগিন করতে পারবো আমাদের কাঙ্ক্ষিত সার্ভারে।

উইনডোজ এর ক্ষেত্রেঃ

C:\Users\YourUser\.ssh\ ফোল্ডারে config নামে একটি ফাইল বানাতে হবে।

উবুন্টু এর ক্ষেত্রে নিচের কমান্ডটি টার্মিনাল এ রান করলে ঐ ফাইলটি ওপেন হবে।

nano ~/.ssh/config

তারপর ফাইলটিতে আমাদের প্রত্যেকটি সার্ভারের ক্রেডেনশিয়ালস দিয়ে দিতে হবে।

config

Host prod
IdentityFile D:/aws/prod.pem
HostName 172.163.1.12
User newuser
Host dev
IdentityFile D:/aws/dev.pem
HostName 172.163.1.12
User ubuntu

আমি এখানে দুইটি নমুনা সার্ভারের ক্রেডেনশিয়ালস এড করে দিয়েছি। একটির নাম দিয়েছি prod এবং অপরটি dev। এখন যদি আমি production সার্ভারে লগিন করতে চাই তাহলে নিচের কমান্ডটি রান করতে হবে।

ssh prod

বার বার আমাদেরকে কমান্ড খুঁজতে হবেনা এবং প্রত্যেকবার এই সিম্পল কমান্ডটি রান করলেই আমরা আমাদের কাঙ্ক্ষিত সার্ভারে লগিন করতে পারবো।

--

--

Anwarul Islam

I am a self-taught and independent software developer. Fall in love with PWA, SPA, and modern web technologies. Mostly write code in TypeScript/JavaScript.