আমি ভিজ্যুয়ালাইজেশনের মাধ্যমে এই জাতীয় জিনিসটি ব্যাখ্যা করতে পছন্দ করি। :-)
আপনার এসএসএইচ সংযোগগুলি টিউব হিসাবে ভাবেন। বড় টিউব। সাধারণত, আপনি এই টিউবগুলির মাধ্যমে একটি রিমোট কম্পিউটারে শেল চালানোর জন্য পৌঁছে যাবেন। শেলটি ভার্চুয়াল টার্মিনালে চালিত হয় (tty)। তবে আপনি এই অংশটি ইতিমধ্যে জানেন।
একটি নল মধ্যে নল হিসাবে আপনার টানেল মনে। আপনার কাছে এখনও বড় এসএসএইচ সংযোগ রয়েছে, তবে -L বা -R বিকল্পের সাহায্যে আপনি এর ভিতরে একটি ছোট টিউব সেট আপ করতে পারেন।
প্রতিটি নলের শুরু এবং শেষ থাকে। বড় টিউব, আপনার এসএসএইচ সংযোগটি আপনার এসএসএইচ ক্লায়েন্টের সাথে শুরু হয়েছিল এবং আপনি যে এসএসএইচ সার্ভারের সাথে সংযুক্ত হয়েছিলেন তা শেষ হয়। সমস্ত ছোট টিউবগুলির একই সমাপ্তি রয়েছে, "স্টার্ট" বা "শেষ" এর ভূমিকা নির্ধারিত হয় আপনি সেগুলি তৈরি করতে -L
বা -R
(যথাক্রমে) ব্যবহার করেছেন কিনা by
(আপনি বলেন নি, তবে আমি ধরে নিচ্ছি যে আপনি যে "রিমোট" মেশিনটি উল্লেখ করেছেন, ফায়ারওয়ালের পেছনের একটি, নেটওয়ার্ক অ্যাড্রেস ট্রান্সলেশন (এনএটি) ব্যবহার করে ইন্টারনেট অ্যাক্সেস করতে পারে This এটি একরকম গুরুত্বপূর্ণ, তাই তাই মিথ্যা হলে অনুমানটি সংশোধন করুন))
আপনি যখন কোনও টানেল তৈরি করেন, আপনি একটি ঠিকানা এবং পোর্ট নির্দিষ্ট করে দিন যার উপরে এটি উত্তর দেবে এবং একটি ঠিকানা এবং পোর্ট যার কাছে এটি সরবরাহ করা হবে specify -L
বিকল্প সুড়ঙ্গ সুড়ঙ্গ (হোস্ট আপনার ক্লায়েন্ট চলমান) স্থানীয় পাশ উত্তর দিতে বলে। -R
বিকল্প সুড়ঙ্গ দূরবর্তী সাইড (SSH সার্ভারের) এ উত্তর দিতে বলে।
সুতরাং ... ইন্টারনেট থেকে একটি ফায়ারওয়ালের পিছনে একটি মেশিনে এসএসএইচ করতে সক্ষম হতে আপনার বাইরের বিশ্বের সাথে একটি এসএসএইচ সংযোগ খোলার জন্য প্রশ্নযুক্ত মেশিনের প্রয়োজন এবং একটি -R
টানেল অন্তর্ভুক্ত করুন যার "প্রবেশ" পয়েন্টটি "রিমোট" পাশের তার সংযোগ।
উপরে প্রদর্শিত দুটি মডেলের মধ্যে আপনি ডানদিকে একটি চান want
আগুনওয়ালা হোস্ট থেকে:
ssh -f -N -T -R22222:localhost:22 yourpublichost.example.com
এটি আপনার ক্লায়েন্টকে -R
ইমোট এন্ট্রি পয়েন্ট সহ একটি টানেল স্থাপন করতে বলে । টানেলের শেষ প্রান্তে 22222 বন্দরটির সাথে সংযুক্ত যে কোনও কিছুই আসলে "লোকালহোস্ট পোর্ট 22" এ পৌঁছে যাবে, যেখানে "লোকালহোস্ট" টানেলের প্রস্থান বিন্দুর (যেমন আপনার এসএস ক্লায়েন্ট) দৃষ্টিকোণ থেকে।
অন্যান্য বিকল্পগুলি হ'ল:
-f
এটি প্রমানের পরে এসএসএসকে ব্যাকগ্রাউন্ডে নিজেই বলে দেয়, তাই টানেলটি বেঁচে থাকার জন্য আপনাকে রিমোট সার্ভারে কিছু চালনা করে বসে থাকতে হবে না।
-N
বলে যে আপনি একটি এসএসএইচ সংযোগ চান, তবে আপনি আসলে কোনও রিমোট কমান্ড চালাতে চান না। আপনার তৈরি করা সমস্ত কিছু যদি একটি টানেল হয় তবে এই বিকল্পটি সহ সম্পদ সংরক্ষণ করে।
-T
সিউডো-টিটি বরাদ্দ অক্ষম করে, যা উপযুক্ত কারণ আপনি কোনও ইন্টারেক্টিভ শেল তৈরি করার চেষ্টা করছেন না।
আপনি পাসওয়ার্ডবিহীন লগইনের জন্য ডিএসএ বা আরএসএ কী সেট আপ না করেই একটি পাসওয়ার্ড চ্যালেঞ্জ থাকবে।
মনে রাখবেন যে আপনি কেবল এই টানেল / গ্রাহক / সার্ভারের জন্য সেট আপ করেছেন এমন একটি নিক্ষেপ অ্যাকাউন্ট (আপনার নিজস্ব লগইন নয়) ব্যবহার করার জন্য এটি দৃ recommended়ভাবে প্রস্তাবিত।
এখন, আপনারপিউলিচোস্টে আপনার শেল থেকে , টানেলের মাধ্যমে ফায়ারওয়াল্ড হোস্টের সাথে একটি সংযোগ স্থাপন করুন:
ssh -p 22222 username@localhost
আপনি একটি হোস্ট কী চ্যালেঞ্জ পাবেন, কারণ আপনি সম্ভবত আগে কখনও এই হোস্টটিকে আঘাত করবেন না। তারপরে আপনি username
অ্যাকাউন্টের জন্য একটি পাসওয়ার্ড চ্যালেঞ্জ পাবেন (যদি না আপনি পাসওয়ার্ডবিহীন লগইনের জন্য কীগুলি সেট না করেন)।
আপনি যদি নিয়মিতভাবে এই হোস্টটিতে অ্যাক্সেস করতে চলেছেন তবে আপনি নিজের ~/.ssh/config
ফাইলে কয়েকটি লাইন যুক্ত করে অ্যাক্সেসও সহজ করতে পারেন :
host remotehostname
User remoteusername
Hostname localhost
Port 22222
সামঞ্জস্য করুন remotehostname
এবং remoteusername
মামলা অনুসারে। remoteusername
ক্ষেত্র দূরবর্তী সার্ভারে আপনার ব্যবহারকারী নাম মেলানো, কিন্তু remotehostname
কোনো হোস্টনাম আপনি suits যে হতে পারে, এটা কোন কিছুই সমাধানযোগ্য মেলে নেই।
(কোনও লোকালহোস্ট আইপিতে বিপরীত শেষ পয়েন্টটি প্রকাশ করতে , এই পোস্টটি দেখুন )