এসএসএস ফরোয়ার্ড করার জন্য কীভাবে এসএসএস টানেল সেটআপ করবেন?


13

আমার রাউটারের পিছনে উবুন্টু সহ কম্পিউটার রয়েছে যা আমি কনফিগার করতে পারি না। তবে আমি সেই কম্পিউটারে এসএসএস অ্যাক্সেস পেতে চাই। আমি মনে করি এটি এসএসএস টানেলিংয়ের মাধ্যমে সম্ভব, তবে আমি কীভাবে এটি করব তা জানি না। আমার আরও একটি সার্ভার রয়েছে যাতে আমি টানেলিং সেটআপ করতে চাই। এটা কিভাবে করতে হবে? অথবা এই সমস্যাটি কীভাবে সমাধান করবেন তা নিয়ে আপনার অন্য কোনও ধারণা থাকতে পারে?

আমি চেষ্টা করেছিলাম:

ssh -N user@my_server -L 22/localhost/8090

তবে এটি বলে:

bind: Address already in use
channel_setup_fwd_listener: cannot listen to port: 22
Could not request local forwarding.

উত্তর:


18

আপনি এটি আপনার স্থানীয় পোর্ট ২২ শুনতে এবং একটি রিমোট সিস্টেমের পোর্ট ৮০৯০ তে সংযোগের জন্য জিজ্ঞাসা করছেন। আপনি এটি করতে পারবেন না, কারণ আপনার স্থানীয় পোর্ট 22 ইতিমধ্যে আপনার স্থানীয় এসএসএইচ সার্ভার দ্বারা নেওয়া হয়েছে।

আমি মনে করি আপনি যা সন্ধান করছেন তা দূরবর্তী ফরওয়ার্ডিং। প্রতিস্থাপন করা হচ্ছে -L 22:localhost:8090সঙ্গে -R 8090:localhost:22ফরোয়ার্ড আপনার SSH সার্ভারে অনুরোধের বন্দর 8090 শুনতে এবং দূরবর্তী হোস্ট বলতে হবে।

আপনি যদি সংযোগটি চালু রেখে চলেছেন যাতে আপনি কোনও প্রত্যন্ত সাইট থেকে পরে যেতে পারেন, তবে আপনি প্রাসঙ্গিক বিকল্পগুলি ( -o TCPKeepAlive=yesবা -o ServerAliveInterval=30) যোগ করে নিষ্ক্রিয়তার কারণে সংযোগটি সময়ের বাইরে চলে না তা নিশ্চিত করতে চাইবেন or

সুতরাং আপনি এরকম কিছু দিয়ে শেষ করবেন:

ssh -N user@my_server -R 8090:localhost:22 -o ServerAliveInterval=30

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


এটি প্রায় কাজ করে। আমি আমার কম্পিউটারের সাথে সংযোগ করতে পারি, তবে আমি কেবল তখনই সার্ভারে লগইন করতে পারি। আমি যে কোনও জায়গা থেকে সেই বন্দরের মাধ্যমে সংযোগ করতে চাই।
klew

3
আপনি যদি পোর্ট ফরওয়ার্ডিং সংজ্ঞায় সার্ভারের সর্বজনীন ঠিকানা বা ওয়াইল্ড-কার্ড যুক্ত করেন (-R 111.222.333.444:8090:localhost:22 বা -আর *: 8090: লোকালহোস্ট: 22) তবে এটি কাজ করতে পারে যদিও এই ধরণের জিনিস সার্ভারে অক্ষম করা যেতে পারে। সার্ভারটি যদি আপনি নিয়ন্ত্রণ করেন তবে তা নিশ্চিত করুন যে গেটওয়েপোর্টস বিকল্পটি sshd_config এ সক্ষম করা আছে।
ডেভিড স্পিললেট

আমি একটি স্ক্রিপ্ট লিখেছি যা আমাকে এসএসএস
নাম

GatewayPorts Yesআমার sshd_config এ যোগ করা আমাকে জনসাধারণের কাছে বন্দরটি খুলতে সহায়তা করেছে।
অ্যাডাম এফ

8

আপনি এটি করতে না পারার কারণটি হ'ল আপনি স্থানীয় কম্পিউটারে 22 পোর্টটি রিমোট সার্ভারে 8090 পোর্টে ফরোয়ার্ড করার চেষ্টা করছেন এবং স্থানীয় সার্ভারে ইতিমধ্যে 22 পোর্টটিতে কিছু চলছে running সম্ভবত আপনার একটি এসএসএইচ সার্ভার চলছে। আপনি 22 টি আলাদা মানতে পরিবর্তন করে এটি ঠিক করতে পারেন। কোনও পোর্ট চালিয়ে মুক্ত কিনা তা পরীক্ষা করে দেখতে পারেন:

# netstat -lep --tcp

এটি সমস্ত শ্রোতা সকেটকে তালিকাবদ্ধ করে, তাই যদি বন্দরটি তালিকাভুক্ত না হয় তবে এটি বিনামূল্যে।


3

আমি lsof -i: PortNumber কমান্ডটি পোর্টটি মুক্ত কিনা তা পরীক্ষা করতে ব্যবহার করছি:

# lsof -i :2272

যদি পোর্টটি বিনামূল্যে থাকে তবে আপনি আউটপুটে কিছুই দেখতে পাবেন না।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.