উত্তর:
আপনি যদি আগে থেকে পরিকল্পনা করেন তবে ওপেনএসএইচ-এর সাম্প্রতিক পর্যায়ে পর্যাপ্ত সংস্করণগুলি সহ এটি খুব সহজ।
প্রথমবার একটি মাস্টার সংযোগ খুলুন। পরবর্তী সংযোগগুলির জন্য, বিদ্যমান মাস্টার সংযোগের মাধ্যমে রুট স্লেভ সংযোগগুলি। আপনার মধ্যে ~/.ssh/config
, সংযোগ ভাগ করে নেওয়া স্বয়ংক্রিয়ভাবে ঘটবে:
ControlMaster auto
ControlPath ~/.ssh/control:%h:%p:%r
আপনি যদি বিদ্যমান সংযোগ হিসাবে একই (ব্যবহারকারী, পোর্ট, মেশিন) এর জন্য কোনও ssh সেশন শুরু করেন তবে দ্বিতীয় অধিবেশনটি প্রথমটিতে সুর করা হবে। দ্বিতীয় সংযোগ স্থাপনের জন্য কোনও নতুন প্রমাণীকরণের প্রয়োজন নেই এবং এটি খুব দ্রুত।
/var/log/secure
এবং /var/log/auth.log
লগ এসএসএইচ সংযোগগুলি; একটি দাস সংযোগ সেখানে উপস্থিত হয় না কারণ এটি একটি বিদ্যমান সংযোগে পিগব্যাক করে। যদি আপনার ssh অধিবেশন একটি টার্মিনাল বরাদ্দ করে (যেমন ssh somehost
কোনও কমান্ড সরবরাহ করা হয় না, বা ssh -t
), এটি (সাধারণত) লগ ইন হয় wtmp
, নির্ধারিতভাবেই যে টার্মিনালটি উপস্থিত হয়েছে (সংযোগ স্থাপনের জন্য যে পদ্ধতিটি ব্যবহৃত হত, এসএসডিডি, টার্মিনাল এমুলেটর অ্যাপ্লিকেশন,…)।
ControlPersist 600
যা সকেটটি স্বয়ংক্রিয়ভাবে মোছার আগে অকেজো হয়ে যাওয়ার কয়েক সেকেন্ডের বিলম্ব। অন্যথায় মাস্টার সংযোগ শেষ হলে এটি স্বয়ংক্রিয়ভাবে বন্ধ হয়ে যাবে। দূরবর্তী অবস্থান থেকে কমান্ডের একটি সিরিজ কার্যকর করার পক্ষে এটি ভাল নয় (যেমন, বিভিন্ন ফোল্ডারে
-S
(সকেট নির্দিষ্ট করুন ) এবং -M
(মাস্টার সংযোগ তৈরি করতে পারেন) ব্যবহার করতে পারেন ।
এনসি সরঞ্জাম এবং এসএসএস টানেল ব্যবহার করে এটি অর্জন করা বেশ সহজ ।
আপনার ssh সেশনে ~Cএকটি নতুন লাইনে টাইপ করুন। আপনি ssh "পরিষেবা কনসোল" প্রম্পট পাবেন যা দেখতে এটির মতো দেখাচ্ছে:
ssh>
এসএসএস টানেলটি খুলতে স্থানীয় ফরোয়ার্ড কমান্ডটি টাইপ করুন:
ssh> -L22000:targethost:22001
Forwarding port.
targethost
আপনি যে মেশিনে সংযুক্ত আছেন তার হোস্টনাম বা আইপি ঠিকানা Where
এখন, ধরে নিলাম টার্গেট মেশিনে ssh সার্ভারটি টানেলগুলি নিষিদ্ধ করার জন্য কনফিগার করা হয়নি, আপনার কাঙ্ক্ষিত সংযোগের ফরোয়ার্ডিং রয়েছে: ssh
আপনার মেশিনের ক্লায়েন্টটি 22000 পোর্ট শুনে, এবং এটি 22001 বন্দরে প্রেরিত যে কোনও ট্র্যাফিককে ফরোয়ার্ড করবে targethost
।
এটি আপনার ইতিমধ্যে খোলা ssh সেশনে নিম্নলিখিত কমান্ডটি প্রবেশ করার মতো সহজ:
remote$ nc -l localhost 22001 | sh
এটি 22001 পোর্টে একটি টিসিপি সার্ভার শোনার সূচনা করবে - যা আমাদের এসএস টানেলের টার্গেট পোর্ট - এবং প্রাপ্ত ডেটা (সম্ভবত, শেল কমান্ড) একটি targethost
শেলের নজরে নিয়ে যাবে।
local$ cat yourscript.sh | nc localhost 22000
এটি স্ক্রিপ্টের দেহটিকে আপনার এসএস টানেলের কাছে প্রেরণ করবে এবং এটির একটি শেলের মাধ্যমে শেষ হবে targethost
। Ssh সেশনে আপনি আপনার টার্মিনালে স্ক্রিপ্টের আউটপুট দেখতে পাবেন।
আমি আরও লক্ষ করব যে এই দৃশ্যে ssh টানেল (পদক্ষেপ 1) কঠোরভাবে প্রয়োজন হয় না; আপনি সার্ভারটি খোলা শুরু করতে এবং সরাসরি এটির সাথে সংযোগ স্থাপন করতে পারেন। তবে লক্ষ্য হোস্টটি সরাসরি পৌঁছাতে না পারলে আপনাকে টানেলটি ব্যবহার করতে হবে (উদাহরণস্বরূপ কোনও NAT এর পিছনে রয়েছে), অথবা ssh এনক্রিপশনটি পছন্দসই রয়েছে।
~
উঠতে , চরিত্রটি অবশ্যই একটি নতুন লাইনের পরে আসতে হবে, সম্ভবত LF ~ C
এটি আরও ভাল ক্রম ence
less
, সাধারণ ডিফল্ট পেজার, এমন অনুসন্ধানকে সমর্থন করে যা আপনার কীওয়ার্ডগুলি জানলে আপনাকে কিছু স্ক্রোলিং বাঁচাতে পারে: কেবল টাইপ করুন man ssh
/ESCAPE
এবং আপনি সেখানে রয়েছেন ।