youatwork@officepc$ autossh -R 12345:localhost:22 notroot@serverpc
পরবর্তীতে:
you@homepc$ autossh -L 23456:localhost:12345 notroot@serverpc
you@homepc$ ssh youatwork@localhost -p 23456
আপনি যা করতে পারেন তা হ'ল: পদক্ষেপ 1 এ অফিসের পিসি থেকে সার্ভারে একটি দূরবর্তী পোর্ট ফরওয়ার্ড করুন ( 12345উদাহরণ হিসাবে ব্যবহৃত হয়, কোনও পোর্ট> 1024 করা উচিত)। এখন সার্ভারে 12345 এ সংযোগ স্থাপনের সাথে আপনাকে অফিসপিসিতে 22 পোর্টের সাথে সংযুক্ত করা উচিত।
পদক্ষেপ 2 এ, আপনার হোম মেশিন থেকে 23456 পোর্টটি সার্ভারে 12345 এ ফরোয়ার্ড করুন (যেহেতু এটি অফিসপিসি: 22 তে ফরোয়ার্ড হবে 1 ধাপে সেটআপ হিসাবে)
পদক্ষেপ 3 এ, আপনি আপনার অফিসের পিসি লগইন দিয়ে 23456 স্থানীয় বন্দরের সাথে সংযুক্ত হন । এটি আপনার সার্ভারে 12345 পোর্ট করতে 2 ধাপে এবং আপনার অফিসের পিসিতে 1 ধাপে এগিয়ে দেওয়া হবে।
নোট করুন যে আমি ফোরওয়ার্ডিংয়ের জন্য অটোশ ব্যবহার করছি, কারণ এটি একটি এসএসএস র্যাপার যা স্বয়ংক্রিয়ভাবে টানেলটি সংযোগ বিচ্ছিন্ন হওয়ার পরে পুনরায় সংযুক্ত করে; তবে ন্যাশনাল এসএস পাশাপাশি কাজ করবে, যতক্ষণ না সংযোগ না নেমে যায়।
একটি সম্ভাব্য দুর্বলতা রয়েছে: সার্ভারপিসিতে লোকালহোস্ট: 12345 এ যে কেউ সংযোগ করতে পারবেন সে এখন অফিসপিসি: 22 এ সংযোগ করতে পারে এবং এতে হ্যাক করার চেষ্টা করতে পারে। (নোট যে আপনি একটি SSH সার্ভারের চালাচ্ছেন, তাহলে আপনি এটিকে যেকোনোভাবে মৌলিক সুরক্ষা যা ডিফল্টভাবে উপর উপরে নিরাপদ উচিত; আমি রুট লগইন নিষ্ক্রিয় এবং পাসওয়ার্ড প্রমাণীকরণ অক্ষম অন্তত সুপারিশ - দেখুন উদাঃ এই )
সম্পাদনা করুন : আমি এটি একই কনফিগারেশনের মাধ্যমে যাচাই করেছি এবং এটি কাজ করে। GatewayPorts noশুধুমাত্র স্থানীয় সুরঙ্গ নয়, কেবল বিশ্বের জন্য উন্মুক্ত বন্দরগুলিকেই প্রভাবিত করে। ফরোয়ার্ড করা বন্দরগুলি হ'ল:
homepc:
outgoing ssh to serverpc:22
listening localhost:23456 forwarded through ssh tunnel
serverpc:
listening ssh at *:22
incoming localhost ssh tunnel (from homepc) forwarded to localhost:12345
listening localhost ssh tunnel (from officepc) forwarded from localhost:12345
officepc:
outgoing ssh to serverpc:22
incoming localhost through ssh tunnel (from serverpc) forwarded to localhost:22
সুতরাং, যতটা নেটওয়ার্কের স্ট্যাক সংশ্লিষ্ট হয়, এটি নিজ নিজ লুপব্যাক ইন্টারফেস (প্লাস SSH সংযোগে সমস্ত স্থানীয় ট্রাফিক আছে করার serverpc); অতএব, GatewayPortsএকেবারে চেক করা হয় না।
তবে নির্দেশিকা রয়েছে AllowTcpForwarding: যদি তা হয় noতবে লুপব্যাক ইন্টারফেসের বাইরেও কোনও ফরওয়ার্ডিং অনুমোদিত নয় বলে এই সেটআপটি ব্যর্থ হবে।
গুহাত :
যদি অটোশ এবং সাম্প্রতিক ssh ব্যবহার করা হয় তবে আপনি এসএসএস ব্যবহার করতে ServerAliveIntervalএবং ServerAliveCountMaxটানেলটি ধরে রাখতে পারেন। অটোশ একটি অন্তর্নির্মিত চেক আছে, তবে সম্ভবত ফেডোরায় এটির কিছু সমস্যা রয়েছে। -M0এটি অক্ষম করে এবং -oServerAliveInterval=20 -oServerAliveCountMax=3সংযোগটি শেষ হয়ে গেছে কিনা তা পরীক্ষা করে - প্রতি 20 সেকেন্ড চেষ্টা করে, যদি এটি সারিতে 3x ব্যর্থ হয়, এসএসএস থামায় (এবং অটোশ একটি নতুন করে তোলে):
autossh -M0 -R 12345:localhost:22 -oServerAliveInterval=20 -oServerAliveCountMax=3 notroot@serverpc
autossh -M0 -L 23456:localhost:12345 -oServerAliveInterval=20 -oServerAliveCountMax=3 notroot@serverpc
ফরোয়ার্ড ব্যর্থ হলে, এসএসএস টানেলটি পুনরায় চালু করতে দরকারী হতে পারে -oExitOnForwardFailure=yes- এটি ব্যবহার করে - বন্দরটি ইতিমধ্যে আবদ্ধ থাকলে আপনি একটি কার্যকরী এসএসএইচ সংযোগ পেতে পারেন, তবে কোনও ফরোয়ার্ড টানেল নেই।
ব্যবহার ~/.ssh/configঅপশন (এবং পোর্ট) এর জন্য যুক্তিযুক্ত আর কমান্ড লাইন খুব বাগাড়ম্বরপূর্ণ পেতে হয়। উদাহরণ স্বরূপ:
Host fwdserverpc
Hostname serverpc
User notroot
ServerAliveInterval 20
ServerAliveCountMax 3
ExitOnForwardFailure yes
LocalForward 23456 localhost:12345
তারপরে আপনি কেবল সার্ভার ওরফে ব্যবহার করতে পারেন:
autossh -M0 fwdserverpc