আমার সাথে

Personal Blog of Zonayed
ওয়েব টেকনোলোজি টিপস এন্ড ট্রিক্স বাংলা

এক পলকে সিকিউর শেল Secure Shell (SSH) — পর্ব ২/২

আগস্ট 15, 2018

গত পর্বে আমরা দেখেছিলাম SSH নিয়ে কিভাবে কাজ করা হয়। আর সেই সাথে আমি কথা দিয়েছিলাম SSH বিহ্যাইন্ড দ্যা সীনে কিভাবে কাজ করে সেটা নিয়েও লিখবো। আর তাই আজকে এই দুই পর্বের লেখার শেষ পর্বে সেটা নিয়েই আলোচনা করবো। আগের পর্ব দেখে না থাকলে নিচের লিঙ্ক থেকে দেখে নিতে পারেন। সেখানে মূলত SSH ইউজ করে আপনি আপনার সার্ভারে, গিটহাবে বা এরকম যেসব জায়গায় SSH আছে সেটার সাথে কিভাবে আপনার ম্যাশিনকে কানেক্ট করাবেন সেগুলো নিয়ে আলোচনা করা হয়েছে।

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

এখন কথা হচ্ছে তথ্য আবার হাত হয় কিভাবে? হ্যাঁ ঠিক, সেটা নিয়েই আগে বলা যাক। আমি খুব ব্যাসিক ভাষায় বলবো। আপনার ডিভাইস কোনো না কোনো ইন্টারনেট কানেকশনে আছে। এখন সেটা হয়তো মোবাইল প্রোভাইডারও হতে পারে, আবার ব্রডব্যান্ড হতে পারে। এখন আপনি যখন ইন্টারনেটে কিছু রিকোয়েস্ট করেন বা আপনার রিকোয়েস্ট অনুযায়ী যে ডাটাগুলো আসে, সেগুলোকে অনেক পথ পাড়ি দিয়ে আসতে হয়। এরকম অনেক প্রোভাইডার, আইসপি(ISP) পাড়ি দিয়ে তারপর আপনার এখানে আসে। এমনও হতে পারে, আপনি আপনার পাসওয়ার্ড দিয়ে ফেসবুককে বললেন আপনার ডাটা দেখাতে। এখন ধরি ফেসবুকের সেই ডাটা সেন্টার আমেরিকাতে। এখন এই ডাটা বিশাল পথ পাড়ি দিয়ে আসার সময় মাঝখানে কোনো হ্যাকারের কবলে পড়ে যেতে পারে। হ্যাকার কোনো না কোনোভাবে ফেসবুককে বুঝাতে পারে যে আমিই আসলে ডাটা রিকোয়েস্ট করছিলাম, আমিই একটু আগে আমার পাসওয়ার্ড দিয়েছিলাম। ব্যাস, এভাবে বোকা বানিয়ে আপনার তথ্য হাতিয়ে নিতে পারে। এখন আপনার ডাটাগুলো আপনার ডিভাইস থেকে ছাড়ার পর, বা যে সার্ভার থেকে আপনার ডাটা আসছে সেখানে থেকে ছাড়ার পর সেগুলোকে সিকিউরড করে ফেলা হয় এমনভাবে যাতে মাঝখানে কেউ সেই ডাটা দেখলেও কিচ্ছু বুঝতে না পারে। এটাকেই সিকিউরড বলে। আর SSH এর মেইন কাজও অনেকটা এরকম। এই সিস্টেমে সাধারণত ডাটা পাঠানোর আগে একটা নির্দিষ্ট টেকনিক ইউজ করে ইনক্রিপ্ট(Encrypt) করে ফেলা হয়। আর যে ডাটা রিসিভ করে সে ডাটাগুলো সেইমভাবেই ডিক্রিপ্ট( Decrypt) করে দেখে। আর তাই এর মাঝখানে কেউ ডাটা দেখলেও মূলত ইনক্রিপ্টেড ডাটাই দেখতে পায় যেটা ডিক্রিপ্ট করে ভিতরে কি আছে সেটা বের করা খুব কঠিন। এখন মূলত ইনক্রিপশন-ডিক্রিপশন এভাবে হলেও SSH আরো স্মার্টভাবে আরো সিকিউরড কিছু মেথড ইউজ করে এই জিনিসগুলো করে থাকে।

SSH সাধারনত তিনটা টেকনিক ইউজ করে ডাটা ইনক্রিপশনের কাজ করে থাকে। বর্তমানে এভাবেই বেশীরভাগ কাজ করে থাকে। তবে ব্যতিক্রম থাকতেও পারে, বা ফিউচারে অন্যরকম SSH ও আসতে পারে। তিনটা টেকনিক হলোঃ

১। সিমেট্রিক্যাল ইনক্রিপশন (Symmetrical Encryption)

২। অ্যাসিমেট্রিক্যাল ইনক্রিপশন (Asymmetrical Encryption)

৩। হ্যাশিং (Hashing)

এখানে উল্লেখিত তিনটা টেকনিক বিভিন্ন পর্যায়ে SSH এ ইউজ হয়ে থাকে।

১। সিমেট্রিক্যাল ইনক্রিপশন (Symmetrical Encryption): এই ইনক্রিপশনে সাধারণত একটা কী(Key) দিয়ে ডাটাগুলোকে এলোমেলো(ইনক্রিপ্ট) করে ফেলা হয়। পরে আবার সেইম কী দিয়ে সে এলোমেলো ডাটা থেকে আসল ডাটা (ডিক্রিপ্ট করে) উদ্ধার করা যায়।

কিন্তু এখানে সমস্যা হলো আমরা যে কী টা ইউজ করে ডাটা ইনক্রিপ্ট করলাম, সেই সেইম কী টাই আবার লাগবে ডাটা ডিক্রিপ্ট করার জন্যে। এটাকে আসলে সিক্রেট কি বলে। তারমানে এই সিক্রেট কী টাও আমাদের ইন্টারনেটের মাধ্যমে পাঠাতে হবে। কিন্তু সিক্রেট কী যদি সরাসরি পাঠিয়ে দেই, তাহলে তো মাঝখান থেকে যে কেউ চাইলেই ইনক্রিপ্টেড ডাটাগুলোকেও ডিক্রিপ্ট করে ফেলতে পারবে এই কী দিয়ে। ঠিক না? হ্যাঁ তাই! আর সেজন্যেই SSH এ এই সিক্রেট কী ইন্টারনেটে পাঠানোই হয় না। বরং একটা ‘কী এক্সচেঞ্জ’ অ্যালগরিদম (Key Exchange Algorithm) ইউজ করে দুই পাশেই সিক্রেট কী জেনারেট করা হয়, যেগুলো পরে ডাটা ইনক্রিপ্ট এবং ডিক্রিপ্ট করতে সাহায্য করে। এখন এই কী এক্সচেঞ্জ অ্যালগরিদমের জন্যেই দ্বিতীয় টেকনিক অ্যাসিমেট্রিক্যাল ইনক্রিপশন ইউজ করা হয়।

২। অ্যাসিমেট্রিক্যাল ইনক্রিপশন (Asymmetrical Encryption): এই ইনক্রিপশন টেকনিক ‘কী এক্সচেঞ্জ’ অ্যালগরিদমের জন্যে লাগে। এই সিস্টেমে দুইটা আলাদা কী ইউজ করা হয় ইনক্রিপশন আর ডিক্রিপশনের জন্যে।

এখানে দুইজনেরই দুইটা করে কী থাকে। তার মধ্যে একটা পাবলিক কী, পাবলিক মানে হচ্ছে এটা যেকেউ দেখতে পারবে। যেভাবে ইচ্ছা শেয়ার করতে পারবেন। আরেকটা প্রাইভেট কী, এটা শেয়ার করা যাবে না। শুধুমাত্র যার যার কাছেই তার তার প্রাইভেট কী থাকবে। এখন এখানে প্রত্যেকটা ম্যাশিনের নিজের প্রাইভেট আর পাবলিক কী র মধ্যে ফাংশানালিটির দিক থেকে কিছু সম্পর্ক থাকে। কিন্তু নিজের পাবলিক কী থেকে কোনোভাবেই প্রাইভেট কী ক্যালকুলেট করে বের করা যাবে না। নিজের পাবলিক কী দ্বারা ইনক্রিপ্ট করা ডাটা তার প্রাইভেট কী ডিক্রিপ্ট করতে পারে। আর তাই ইন্টারনেটে পাবলিক কী টা এক ম্যাশিন আরেক ম্যাশিনের সাথে শেয়ার করে। এখন এখানে ব্যাপরটা হলো এরকম যে, পাবলিক কী যেহেতু আরেকটা ম্যাশিনের সাথে শেয়ার করা হয়, তাই সেটা আরেকটা ম্যাশিনে গিয়ে তার প্রাইভেট কী র সাথে জোড়া বেঁধে ডাটা ইনক্রিপ্ট করে। তারপর আবার সেই পাবলিক কী নিজের ম্যাশিনে আসলে তার ইনক্রিপ্ট করা ডাটা তার প্রাইভেট কী র সাথে জোড়া বেঁধে ডাটা ডিক্রিপ্ট করে ফেলে। এখন এখানে আসলে একটা কী এক্সচেঞ্জ অ্যালগরিদম, ডিফি-হেলমেন (Diffie–Hellman) কী এক্সচেঞ্জ ইউজ করা হয়। এই অ্যালগরিদম আর শেয়ার্ড পাবলিক কী ইউজ করে আসল সিক্রেট কী ইন্টারনেটের মাধ্যমে না পাঠিয়েই অপর ম্যাশিনে সিক্রেট কী জেনারেট করে ডাটা ডিক্রিপ্ট করে ফেলা হয়। অ্যাসিমেট্রিক্যাল ইনক্রিপশন শুধুমাত্র এই সিক্রেট কী এক্সচেঞ্জ এর জন্যেই ইউজ করা হয়। মানে সিমেট্রিক্যাল ইক্রিপশনে যে সিক্রেট কী ইউজ করে ডাটা ইনক্রিপ্ট ডিক্রিপ্ট করা হয় সেটা ইন্টারনেটে না পাঠিয়েও এভাবে এই অ্যাসিমেট্রিক্যাল টেনকিন ইউজ করে অপর প্রান্তে এই কী টা জেনারেট করা হয়। ডিফি-হেলমেন কী এক্সচেঞ্জ আসলে যেটা করেঃ

১। দুই প্রান্তের ম্যাশিনেরই দুইটা দুইটা করে কী থাকবে, একটা পাবলিক আরেকটা প্রাইভেট।

২। এখন দুই প্রান্তের ম্যাশিনই তাদের পাবলিক কী এক্সচেঞ্জ করতে পারবে, যেহেতু এটা পাবলিক কী। কিন্তু প্রাইভেট কী এক্সচেঞ্জ করে না।

৩। এখন এখানে পাবলিক আর প্রাইভেট কী ম্যাথমেটিক্যালি একটার সাথে আরেকটার সম্পর্ক থাকে। পুরো প্রসেসটায় পাবলিক কী একটা ডাটা ইনক্রিপ্ট করলে শুধুমাত্র ঐ পাবলিক কী এর সাথের প্রাইভেট কী টাই সেই ডাটা ডিক্রিপ্ট করতে পারে।

৪। আর তাই এখন আমাদের ম্যাশিন থেকে আমাদের পাবলিক কী রিমোট সার্ভারে গিয়ে সেখানকার ডাটা ইনক্রিপ্ট করে।

৫। এখন আমরা জানি, যে পাবলিক কী ডাটা ইনক্রিপ্ট করবে, ঠিক তার জোড়া প্রাইভেট কী ই একমাত্র সে ডাটা ডিক্রিপ্ট করতে পারবে। আর তাই এখন ইনক্রিপ্ট করা ডাটা আমাদের ম্যাশিনে আসলে আমাদের প্রাইভেট কী সেটা ডিক্রিপ্ট করতে পারবে। কারন মনে করে দেখুন আমাদের পাবলিক কী ই এই ডাটা রিমোট ম্যাশিনে ইনক্রিপ্ট করেছিলো, আর তাই আমাদের প্রাইভেট কী সেটা ডিক্রিপ্ট করতে সক্ষম।

৬। এখন ইন্টারনেটে পাবলিক কী শেয়ার করা কেনো সেইফ? হ্যাঁ আপনি পাবলিক কী শেয়ার করলে, তারপর সেটা কোনো ডাটা ইনক্রিপ্ট করলে, সেই ডাটা ডিক্রিপ্ট করার মতো তার জোড়া প্রাইভেট কী কিন্তু আর নাই। কারন আপনি প্রাইভেট কী শেয়ার করেন নি, আবার পাবলিক কী থেকে তার জোড়া প্রাইভেট কীও উদ্ধার করা সম্ভব নয়। আর তাই এটা সেইফ।

৭। আর এভাবেই দুই প্রান্তে পৃথক পৃথকভাবে সিক্রেট কী জেনারেট করা হয়, যেটা এই টেকনিকের কারণে সেইম কী ই হবে। তারপর এই সিক্রেট কী ইউজ করে সিমেট্রিক্যাল ইনক্রিপশনের মাধ্যমে বাকী সব ডাটা আদান-প্রদান করা হয়।

সিক্রেট কী টা ইন্টারনেটের মাধ্যমে সরাসরি শেয়ার না করে এভাবে জেনারেট করা হয় অ্যাসিমেট্রিক্যাল ইনক্রিপশনের সাহায্যে, আর বাকী সব সিমেট্রিক্যাল ইনক্রিপশনেই করা হয় যেহেতু এখন আমাদের সিক্রেট কী দুই প্রান্তেই আছে।

আর আমরা এজন্যেই আমাদের জেনারেট করা দুইটা কী এর মধ্যে পাবলিক কী টা আমাদের সার্ভারের সাথে শেয়ার করি। ইউজার ইন্টারফেসের মাধ্যমে হউক বা .ssh ডিরেক্টরির ভিতরে authorized_keys এর ভিতরেই রেখেই হউক, আমরা আমাদের রিমোট সার্ভারকে কোনো না কোনোভাবে আমাদের পাবলিক কী টা বলে দিতে হয়।

কিন্তু এখানেই সমস্যা। এমনও তো হতে পারে ইন্টারনেটে কোথাও কোনো ডাটার পরিবর্তন হতে পারে, যদিও । অথবা এমনও হতে পারে আমাদের পাঠানো ডাটা সম্পূর্ণটা নাও যেতে পারে। আর সেজন্যেই শেষের এই হ্যাশিং টেকনিক ইউজ করা হয়।

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

হ্যাশিং এ এভাবেই একমুখী ভাবে একটা ইউনিক প্যাটার্ন যাচাই করা হয়। প্রথম ম্যাশিনের হ্যাশ যদি দ্বিতীয় ম্যাশিনের হ্যাশের সাথে পুরোপুরি মিলে যায় তাহলেই বুঝতে হবে এই ডাটা কোথায় নড়চড় হয় নি। যেভাবে পাঠানো হয়েছে সেভাবেই আছে। হ্যাশিং এর ব্যাপারটা এরকম যে, একটা সংখ্যা একটু পরিবর্তন করলেই পুরো ইউনিক প্যাটার্নটাই পরবর্তন হয়ে যায়। তাই ইন্টারনেটে মাঝখানে কেউ ডাটা ধরে ম্যালওয়ার ডাটা বা কিছু চেঞ্জ করে দিবে সেটার কোনো স্কোপ নাই। আমাদের পাঠানো ডাটা সম্পূর্ণ কিনা এবং পথিমধ্যে কোনোরকম মডিফাই করা হয়েছে কিনা সেটা যাচাই করতেই এই হ্যাশিং ইউজ করা হয়। যদিও অলরেডী আমাদের ডাটা সিকিউরড, কিন্তু তাও এখানে ডাটা মডিফিকেশনের কিছু স্কোপ থাকতেই পারে। সেই সাথে এমনও হতে পারে পুরো ডাটা সেন্ড হয় নি। মূলত এজন্যেই হ্যাশিং টেকনিক ইউজ করা হয়। কারন যদি দুইটা হ্যাশ না মিলে তাহলে বুঝতে হবে ডাটা মাঝখানে কোথাও মডিফাই হয়েছে এবং এই সেই ডাটা রিজেক্ট হয়ে যাবে। পুরো ব্যাপারটা করা হয় HMAC (Hash based Messaging Authentication Code) দিয়ে। এই MAC টা পাঠানো হয় ইন্টারনেটের মাধ্যমে ঠিকমতো ডাটা হ্যাশ করে যাচাই করার জন্যে।

সার্ভারের সাথে অথেনটিকেশনঃ

এখন আমরা যখন কোনো রিমোট সার্ভারে SSH এর জন্যে কমান্ড দেই, তখন সার্ভার প্রথমে আমাদের পরিচয় যাচাই করবে। এখন এখানে দুইটা সিস্টেমে সেটা যাচাই করা যেতে পারেঃ

১। পাসওয়ার্ডঃ এই সিস্টেমে সার্ভার আমাদের পাসওয়ার্ড দিতে বলবে। পাসওয়ার্ড ভ্যালিড হলে ব্যাস সার্ভার আমার পরিচয় কনফার্ম করে ফেলতে পারবে। এই সিস্টেমটাও বাইরের সবার কাছ থেকে সিকিউরড থাকে। কেউ চাইলেও এই পাসওয়ার্ড হাতিয়ে নিয়ে পারবে না। কিন্তু তারপরেও এটা রিকোমেন্ডেড না। কারন প্রত্যেকটা সেশনের জন্য সার্ভার আপনার পরিচয় জিজ্ঞাসা করবে। প্রত্যেকবারই আপনাকে পাসওয়ার্ড দিতে হবে। যেটা আমি মনে করি একটু বিরক্তিকর ব্যাপার। আর সেজন্যেই দ্বিতীয় উপায়টা বেশ পপুলার।

২। SSH কীঃ আমরা আমাদের .ssh ডিরেক্টরিতে যে কীগুলো জেনারেট করি সেগুলো চেক করা হয় সার্ভারে ঢুকার সময়। আমরা ssh কমান্ড দেওয়ার সাথে সাথেই এখান থেকে আমাদের পাবলিক কী টা যাচাই করা হয়। আর আমরা আমাদের রিমোট সার্ভারে যে পাবলিক কী টা রাখি সেটার সাথে আমাদের এই .ssh ডিরেক্টরির পাবলিক কী চেক করা হয়। ডিফি-হেলমেন কী এক্সচেঞ্জ ইউজ করে অ্যাসিমেট্রিক্যাল ইনক্রিপশনে ম্যাসেজ আদান-প্রদান করা হয়ে থাকে। আর এখান থেকেই কনফার্ম করা হয় আপনিই ভ্যালিড প্রাইভেট কী হোল্ড করছেন কিনা। কারন অ্যাসিমেট্রিক্যাল ইনক্রিপশন এর প্রসেসের সময় আপনার পাবলিক কী সার্ভারের কোনো ডাটা ইনক্রিপ্ট করলে আপনার ম্যাশিন যদি ঠিক ভ্যালিড পাবলিক কী টার জোড়া প্রাইভেট কী হোল্ড করে থাকে, তাহলেই একমাত্র সে ডাটা ডিক্রিপ্ট করতে পারবে। আর এভাবেই সার্ভার আপনাকে চিনতে পারে, যে আপনিই ভ্যালিড প্রাইভেট কী হোল্ড করছেন, আপনিই আসল ইউজার। আর যদি সে ডাটা ডিক্রিপ্ট করতে না পারে, তাহলে এর মানে হচ্ছে আপনার কাছে উক্ত পাবলিক কী টার জোড়া প্রাইভেট কী আসলে নাই। পাবলিক কী যেহেতু শেয়ার করা যায়, তাই যে কেউ পাবলিক কী দিয়ে সার্ভারে রিকোয়েস্ট পাঠাতে পারবে, কিন্তু ভ্যালিড প্রাইভেট কী না থাকায় ইনক্রিপ্টেড ম্যাসেজ আর ডিক্রিপ্ট করতে পারবে না। এভাবে সে রিকোয়েস্ট ভুয়া বা এরর বলে গণ্য হবে। এই রিকোয়েস্ট সার্ভারে ঢুকার পারমিশন পাবে না। আর এভাবেই আমরা আমাদের সার্ভারে অথেনটিকেটেড হয়ে যাই। এই সিস্টেমটাই রিকোমেন্ডেড যেহেতু এখানে আমরা একবার কী গুলো সেটাপ করে ফেললে পরে আর কোনো দ্বিতীয় স্টেপ আর হওয়া লাগে না। কমান্ড দিলেই বিহ্যাইন্ড দ্যা সীনে সবকিছু সিকিউরডলি যাচাই করে অথেনটিকেশন প্রসেস কমপ্লিট হয়ে যায়। একদম সিম্পল এবং ঝামেলা ছাড়া!

এভাবে এই টেকনিকগুলো ইউজ করার মাধ্যমেই SSH এতো সিকিউরড। আশা করি এবার বুঝতে পেরেছেন পুরো ব্যাপারটা। আরো গভীরভাবে জানতে চাইলে আমার লেখায় উল্লেখিত অ্যালগরিদম/টার্মসগুলো নিয়ে গুগুলে ঘেটে বিস্তারিত জানতে পারবেন। তবে কাজ করার জন্যে আমাদের এইটুকুই যথেষ্ট।

লোকাল থেকে সার্ভারে ফাইল কপি করাঃ

গত পর্বে আমরা যদিও SSH এর সাহায্যে সার্ভারে কানেক্ট করে কিছু অপারেশন করেছিলাম। কিন্তু এই পর্বে আমি কিভাবে আপনি আপনার লোকাল ম্যাশিনে থাকা ফাইল SSH এর সাহায্যে সার্ভারে পাঠাবেন সেটা দেখাবো।

এই জন্যে আমাদের সম্পূর্ণ আরেকটা কমান্ড ইউজ করতে হবে। এই লেখায় আমি যেহেতু গিট ব্যাস ইউজ করতেছি তাই এরকম কমান্ড দিয়ে কাজ করবো। আপনি অন্যকোনোকিছু ইউজ করে থাকলে গুগুলে সার্চ করে নিবেন। ম্যাকের জন্যে বা অন্য কমান্ড লাইনের জন্যে অন্যরকম কমান্ড আছে।

ধরি আমার ডেস্কটপে একটা ফাইল আছে DB.txt নামে। আর তাই আমি আমার কমান্ড লাইনটা ডেক্সটপে খুলবো। খুলে এভাবে কমান্ড দিবোঃ

scp ./DB.txt ubuntu@13.229.87.113:./DB.txt

এখানে scp হচ্ছে কপি করার কমান্ড। তারপরে আমরা যে ফাইলটা কপি করতে চাচ্ছি সেটার নাম ./DB.txt দিয়েছি। তারপর আমরা আমাদের সার্ভারের পরিচয় দিয়েছি ubuntu@13.229.87.113 তারপর দুইটা কোলন দিয়ে সার্ভারে কোথায় এবং কি নামে ফাইলটা রাখতে চাচ্ছি সেটা উল্লেখ করে দিলাম। আমার এখানে আমি রুট ডিরেক্টরিতে DB.txt নামে রাখতে চাচ্ছি আর তাই এইভাবে ./DB.txt লিখেছি। ব্যাস এবার এন্টার চাপলেই আপনার ফাইল কপি হয়ে যাবে সার্ভারে।

এবার SSH দিয়ে ঢুকে ভিতরে দেখবেন আপনার ফাইল আছেঃ

ssh ubuntu@13.229.87.113

এবার আপনার সার্ভারের ভিতরে ফাইল লিস্ট করার কমান্ড দিবেনঃ

ls

এখানে আপনার নতুন কপি করা ফাইলটাও দেখতে পাবেনঃ

সেইমভাবে যদি ফোল্ডার কপি করতে চাইলে এরকম সেইমভাবেই কমান্ড দিয়ে করতে পারবেন। ধরি আমার ডেক্সটপ ডিরেক্টরিতে একটা ফোল্ডার আছে ReactPressWP নামে। এখন এটা সার্ভারে কপি করতে চাইলে কমান্ড এমন হবেঃ

scp -r ./ReactPressWP ubuntu@13.229.87.113:./ReactPressWP

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

এবার আপনার সার্ভারে আবার SSH করে ঢুকে লিস্ট করলে আপনার নতুন এই ফোল্ডার দেখতে পাবেনঃ

ssh ubuntu@13.229.87.113

এবার সবকিছু লিস্ট করুনঃ

ls

এখানে আপনার নতুন কপি করা ডিরেক্টরি আছেঃ

ভিতরে সব ফাইলসহঃ

ls ReactPressWP

ব্যাস! এতই সিম্পল আর সহজ ব্যাপারটা। SSH ইউজ করে এভাবেই খুব সহজে আপনি আপনার সার্ভার কন্ট্রোল করতে পারবেন। SSH দিয়ে কোন সার্ভারে ঢুকার পর সেখান থেকে বের হয়ে আসতে চাইলে সেই সার্ভারের টারমিনেট কমান্ড দিয়ে নিবেন। যেমন আমার এখানে ইউজ করা সার্ভারটা উবুন্টু সার্ভার, আর তাই এখানে টারমিনেট কমান্ড হচ্ছেঃ

exit

ব্যাস এই কমান্ড দিলেই আপনি আপনার সার্ভার থেকে বের হয়ে আসবেন।

*** স্পেশাল ধন্যবাদ সাকিব ভাইকে আমাকে SSH সার্ভার দিয়ে সহায়তা করার জন্যে। উনার জন্যেই রিয়েল সার্ভারের সাথে কানেক্ট করিয়ে লেখাটা কমপ্লিট করা সম্ভব হয়েছে।


আমার নতুন ব্লগ পোস্ট গুলোর আপডেট পেতে আপনি আপনার ইমেইল দিয়ে আমার ব্লগ পোস্টগুলো সাবস্ক্রাইব করে রাখতে পারেন, নতুন পোস্টগুলো সপ্তাহে একদিন আপনার ইনবক্সে চলে যাবে

Comments

comments