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