রিমোট অ্যাক্সেস সরল করার জন্য কীভাবে কাস্টম এসএসএইচ সংযোগগুলি কনফিগার করবেন


এসএসএইচ (এসএসএইচ ক্লায়েন্ট) একটি মেশিনকে রিমোট অ্যাক্সেসের জন্য একটি প্রোগ্রাম, এটি কোনও ব্যবহারকারীকে দূরবর্তী হোস্টে কমান্ড কার্যকর করতে সক্ষম করে। এটি কোনও রিমোট হোস্টে লগ ইন করার জন্য অন্যতম প্রস্তাবিত পদ্ধতি, যেহেতু এটি অনিরাপদ নেটওয়ার্কের জন্য দুটি অবিশ্বস্ত হোস্টের মধ্যে সুরক্ষিত এনক্রিপ্ট করা যোগাযোগ সরবরাহ করার জন্য তৈরি করা হয়েছে।

এসএসএইচ সিস্টেম-ব্যাপী পাশাপাশি ব্যবহারকারী-নির্দিষ্ট (কাস্টম) কনফিগারেশন ফাইল উভয়ই ব্যবহার করে। এই টিউটোরিয়ালে, আমরা কীভাবে একটি কাস্টম ssh কনফিগারেশন ফাইল তৈরি করব এবং দূরবর্তী হোস্টগুলিতে সংযোগ স্থাপনের জন্য নির্দিষ্ট বিকল্পগুলি ব্যবহার করব তা ব্যাখ্যা করব।

  1. আপনার লিনাক্স ডেস্কটপে অবশ্যই ওপেনএসএসএইচ ক্লায়েন্ট ইনস্টল করা থাকতে হবে
  2. ssh এর মাধ্যমে দূরবর্তী সংযোগের জন্য ব্যবহৃত সাধারণ বিকল্পগুলি বুঝতে।

নীচে ssh ক্লায়েন্ট কনফিগারেশন ফাইলগুলির অবস্থানগুলি রয়েছে:

  1. /etc/ssh/ssh_config - এটি ডিফল্ট, সিস্টেম-ওয়াইড কনফিগারেশন ফাইল। এটিতে সেটিংস রয়েছে যা ssh ক্লায়েন্ট মেশিনের সমস্ত ব্যবহারকারীর জন্য প্রযোজ্য।
  2. ~/.ssh/config বা OME HOME/.ssh/config - ব্যবহারকারী-নির্দিষ্ট/কাস্টম কনফিগারেশন ফাইল। এটিতে এমন কনফিগারেশন রয়েছে যা নির্দিষ্ট ব্যবহারকারীর জন্য প্রযোজ্য। এটি সিস্টেম-ওয়াইড কনফিগারেশন ফাইলে ডিফল্ট সেটিংসকে ওভাররাইড করে। এই ফাইলটি আমরা তৈরি করব এবং ব্যবহার করব

ডিফল্টরূপে, ব্যবহারকারীরা পাসওয়ার্ড ব্যবহার করে এসএসএসে অনুমোদনপ্রাপ্ত হয়, তবে, আপনি 5 টি সহজ পদক্ষেপে এসএসএস কীজেন ব্যবহার করে এসএসএস পাসওয়ার্ডলেস লগইন সেটআপ করতে পারেন।

দ্রষ্টব্য: ডিরেক্টরি যদি আপনার ডেস্কটপ সিস্টেমে ।/.Ssh উপস্থিত না থাকে তবে নিম্নলিখিত অনুমতি সহ এটি তৈরি করুন।

$ mkdir -p ~/.ssh
$ chmod 0700 ~/.ssh   

উপরের chmod কমান্ডটি বোঝায় যে ssh সেটিংস দ্বারা প্রয়োজনীয় ব্যবহারকারী কেবল ডিরেক্টরিতে ডিরেক্টরি পড়তে, লিখতে এবং চালিত করতে পারবেন।

কীভাবে ব্যবহারকারী নির্দিষ্ট এসএসএইচ কনফিগারেশন ফাইল তৈরি করবেন

এই ফাইলটি সাধারণত ডিফল্টরূপে তৈরি হয় না, সুতরাং আপনাকে কেবল ব্যবহারকারীর জন্য পড়ার/লেখার অনুমতি নিয়ে এটি তৈরি করতে হবে।

$ touch ~/.ssh/config
$ chmod 0700 ~/.ssh/config

উপরের ফাইলটিতে হোস্টের স্পেসিফিকেশন দ্বারা সংজ্ঞায়িত বিভাগগুলি রয়েছে এবং একটি বিভাগ কেবলমাত্র হোস্টগুলিতে প্রয়োগ করা হয় যা নির্দিষ্টকরণে সেট করা একটি নিদর্শনগুলির সাথে মেলে।

The/.ssh/config এর প্রচলিত ফর্ম্যাটটি নীচে এবং সমস্ত খালি লাইন পাশাপাশি ‘#’ দিয়ে শুরু হওয়া লাইনগুলি মন্তব্য হিসাবে বিবেচিত:

Host    host1
	ssh_option1=value1
	ssh_option2=value1 value2
	ssh_option3=value1 

Host    host2
	ssh_option1=value1
	ssh_option2=value1 value2

Host  *
	ssh_option1=value1
	ssh_option2=value1 value2

উপরের ফর্ম্যাট থেকে:

  1. হোস্ট হোস্ট 1 - হোস্ট 1 এর শিরোনাম সংজ্ঞা, এখান থেকেই একটি হোস্টের স্পেসিফিকেশন শুরু হয় এবং এটি পরবর্তী শিরোনাম সংজ্ঞা, হোস্ট হোস্ট 2 বিভাগ তৈরি করে শেষ হয়
  2. হোস্ট 1, হোস্ট 2 হ'ল কমান্ড লাইনে ব্যবহার করার জন্য হোস্ট আলেখ্য হয়, এগুলি দূরবর্তী হোস্টের আসল হোস্ট-নেম নয়
  3. কনফিগারেশন বিকল্পগুলি যেমন ssh_option1 = মান 1, ssh_option2 = মান 1 মান 2 একটি মিলিত হোস্টের জন্য প্রযোজ্য এবং সুসংহত বিন্যাসের জন্য ইন্টেন্ট করা উচিত
  4. ssh_option2 = মান 1 মান 2 এর মতো বিকল্পের জন্য, মান মান 1 প্রথমে বিবেচনা করা হবে, তারপরে মান 2
  5. শিরোনাম সংজ্ঞা হোস্ট * (যেখানে * একটি প্যাটার্ন - শূন্য বা আরও বেশি অক্ষরের সাথে মেলে এমন ওয়াইল্ডকার্ড) শূন্য বা আরও বেশি হোস্টের সাথে মিলবে

তবুও উপরের ফর্ম্যাটটি বিবেচনা করে, ssh এইভাবে কনফিগারেশন ফাইলটি পড়ে। আপনি যদি এর থেকে হোস্ট 1 দূরবর্তীভাবে অ্যাক্সেস করতে কোনও ssh কমান্ড কার্যকর করেন:

$ ssh host1

উপরের ssh কমান্ড নিম্নলিখিত জিনিসগুলি করবে:

  1. কনফিগার ফাইলে হোস্ট ওরফে হোস্ট 1 এর সাথে মেলে এবং সংজ্ঞা শিরোনাম, হোস্ট হোস্ট 1 এর অধীনে সেট করা বিকল্পগুলি প্রয়োগ করে
  2. তারপরে পরবর্তী হোস্ট বিভাগ, হোস্ট হোস্ট 2 এ চলে যায় এবং সন্ধান করে যে কমান্ড লাইনে প্রদত্ত নামটি মেলে না, তাই এখান থেকে কোনও বিকল্প ব্যবহার করা হয় না
  3. এটি শেষ বিভাগে এগিয়ে যায়, হোস্ট *, যা সমস্ত হোস্টের সাথে মেলে। এখানে, এটি এই বিভাগের সমস্ত বিকল্প হোস্ট সংযোগে প্রয়োগ করে। তবে এটি পূর্ববর্তী বিভাগ (গুলি) -এ ইতিমধ্যে ব্যবহৃত বিকল্পগুলির কোনও মানকে ওভাররাইড করতে পারে না
  4. হোস্ট 2 এ একই প্রযোজ্য।

ব্যবহারকারী নির্দিষ্ট এসএসএইচ কনফিগারেশন ফাইলটি কীভাবে ব্যবহার করবেন

একবার আপনি কীভাবে ssh ক্লায়েন্ট কনফিগারেশন ফাইলের কাজ করে তা বুঝতে পারলে আপনি এটি নিম্নলিখিত হিসাবে তৈরি করতে পারেন। আপনার সার্ভার পরিবেশের জন্য প্রযোজ্য বিকল্পগুলি এবং মানগুলি (হোস্ট এ্যালিয়াস, পোর্ট নম্বর, ব্যবহারকারীর নাম এবং তাই) ব্যবহার করতে ভুলবেন না।

আপনার প্রিয় সম্পাদকের সাহায্যে কনফিগারেশন ফাইলটি খুলুন:

$ vi ~/.ssh/config

এবং প্রয়োজনীয় বিভাগগুলি সংজ্ঞায়িত করুন:

Host fedora25
        HostName 192.168.56.15
        Port 22
        ForwardX11 no

Host centos7
        HostName 192.168.56.10
        Port 22
        ForwardX11 no

Host ubuntu
        HostName 192.168.56.5
        Port 2222
        ForwardX11 yes

Host *
        User tecmint
        IdentityFile ~/.ssh/id_rsa
        Protocol 2
        Compression yes
        ServerAliveInterval 60
        ServerAliveCountMax 20
        LogLevel INFO

উপরের ssh কনফিগারেশন বিকল্পগুলির বিশদ বিবরণ।

  1. হোস্টনাম - লগ ইন করতে আসল হোস্টের নামটি সংজ্ঞায়িত করে, বিকল্পভাবে, আপনি একটি সংখ্যার আইপি অ্যাড্রেস ব্যবহার করতে পারেন, এটিও অনুমোদিত (কমান্ড লাইনে এবং হোস্টনামের স্পেসিফিকেশন উভয়)
  2. ব্যবহারকারী - হিসাবে লগ ইন করতে ব্যবহারকারীকে নির্দিষ্ট করে।
  3. পোর্ট - দূরবর্তী হোস্টের সাথে সংযোগ স্থাপনের জন্য পোর্ট নম্বর সেট করে, ডিফল্টটি 22 হয় the
  4. প্রোটোকল - এই বিকল্পটি প্রোটোকল সংস্করণগুলিকে সংজ্ঞায়িত করে যে পছন্দগুলির ক্রমে ssh সমর্থন করবে। সাধারণ মানগুলি হ'ল 1 1 এবং '2', একাধিক সংস্করণ অবশ্যই কমা দ্বারা পৃথক করা উচিত
  5. আইডেন্টিটি ফাইল - এমন একটি ফাইল নির্দিষ্ট করে যা থেকে ব্যবহারকারীর ডিএসএ, এড 25519, আরএসএ বা ইসিডিএসএ প্রমাণীকরণ পরিচয় পড়ে।
  6. ফরওয়ার্ডএক্স 11 - এক্স 11 সংযোগগুলি স্বয়ংক্রিয়ভাবে সুরক্ষিত চ্যানেল এবং ডিআইআইএসএল সেটের উপরে পুনঃনির্দেশিত হবে কিনা তা নির্ধারণ করে। এর দুটি সম্ভাব্য মান রয়েছে "হ্যাঁ" বা "না"
  7. সংক্ষেপণ - এটি "হ্যাঁ" মানের সাথে দূরবর্তী সংযোগের সময় সংক্ষেপণ সেট করতে ব্যবহৃত হয়েছিল। ডিফল্টটি "না" no
  8. সার্ভারআলভইন্টারওয়াল - কয়েক সেকেন্ডের মধ্যে একটি টাইমআউট ব্যবধান সেট করে যার পরে সার্ভারের কাছ থেকে কোনও প্রতিক্রিয়া (বা ডেটা) পাওয়া না গেলে, এসএসএস এনক্রিপ্টড চ্যানেলের মাধ্যমে একটি বার্তা প্রেরণ করবে সার্ভারের কাছ থেকে প্রতিক্রিয়া অনুরোধ করার জন্য। ডিফল্ট মান 0, এর অর্থ সার্ভারে কোনও বার্তা প্রেরণ করা হবে না বা 300 যদি ব্যাচমড বিকল্পটি সংজ্ঞায়িত করা হয়।
  9. সার্ভারআলভকাউন্টম্যাক্স - সার্ভারের জীবন্ত বার্তাগুলির সংখ্যা নির্ধারণ করে যা সার্ভারের কাছ থেকে কোনও প্রতিক্রিয়া না পেয়ে প্রেরণ করা যেতে পারে
  10. লগলিভেল - ভার্চুটি স্তরটি সংজ্ঞায়িত করে যা ssh থেকে বার্তা লগ করার সময় ব্যবহৃত হয়। অনুমোদিত মানগুলির মধ্যে রয়েছে: কুইট, ফ্যাটাল, এআরআরআর, ইনফো, ভার্বোস, ডিইবিইউজি, ডিইবিইউজি 1, ডিইবিজিজি 2, এবং ডিইবিজি 3। এবং ডিফল্ট হ'ল INFO

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

$ ssh -i ~/.ssh/id_rsa -p 22 [email 

তবে, ssh ক্লায়েন্ট কনফিগারেশন ফাইল ব্যবহার করে আমরা কেবল নিম্নলিখিত কমান্ডটি টাইপ করতে পারি:

$ ssh centos7 

আপনি ssh ক্লায়েন্ট কনফিগারেশন ম্যান পৃষ্ঠাতে আরও বিকল্প এবং ব্যবহারের উদাহরণ পেতে পারেন:

$man ssh_config

এটি এই মুহূর্তে, এই গাইডে, আমরা আপনাকে লিনাক্সে কীভাবে ব্যবহারকারী-নির্দিষ্ট (কাস্টম) ssh ক্লায়েন্ট কনফিগারেশন ফাইল ব্যবহার করবেন তা আপনাকে ব্যাখ্যা করেছি। এই নিবন্ধটি সম্পর্কে আমাদের কাছে আবার লিখতে নীচের প্রতিক্রিয়া ফর্মটি ব্যবহার করুন।