সংযোগকারী কম্পিউটারে আমি কীভাবে বিপরীত এসএসএইচ সংযোগটি কনফিগার করতে পারি?


20

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

অর্থাৎ,

COMPUTER A OPENS TCP CONNECTION TO COMPUTER B
COMPUTER B OPENS SSH CONNECTION OVER THE EXISTING TCP CONNECTION TO COMPUTER A
COMPUTER B NOW HAS SSH CONNECTION TO COMPUTER A

এটি কি সম্ভব, এবং যদি তাই হয় তবে আমি কীভাবে এটি করতে পারি?


2
সম্পর্কিত (কীভাবে এবং কেন এটি কাজ করে): কীভাবে বিপরীত এসএসএইচ টানেলিং কাজ করে?
গিলস'স 14-

উত্তর:


21

ইন /etc/ssh/sshdজন্য কম্পিউটার বি সেট:

AllowTcpForwarding yes
TCPKeepAlive yes

কম্পিউটার এ থেকে :

$ ssh -R 2222:localhost:22 ip.of.computer.b

কম্পিউটার বি থেকে :

$ ssh localhost -p 2222

মনে রাখবেন যে 2222 আমি নির্ধারিত একটি নির্বিচার উচ্চ পোর্ট নম্বর। কম্পিউটার বি-তে সেই বন্দরটি এসপিএইচ সংযোগের মাধ্যমে কম্পিউটার এ-তে পোর্ট ২২ থেকে শুরু করে পুনরায় টুনেল করা হবে you

আপনার ব্যবহারের ক্ষেত্রে আপনি সম্ভবত এটি কোনও স্ক্রিপ্ট থেকে চালাতে চাইবেন যাতে আপনি এটিকে একটি ডেমন বানাতে পারেন এবং লিঙ্কটি বাদ পড়লে পর্যায়ক্রমে পুনরায় সংযোগ করার চেষ্টা করতে পারেন। আগত সংযোগগুলি পরিচালনা করতে আপনি সম্ভবত কম্পিউটার বি/bin/true তে একটি শেল সহ একটি বিশেষ অ্যাকাউন্ট চাইবেন । তারপরে আপনি "হোম কল" করার অনুমতিপ্রাপ্ত প্রতিটি মেশিনের জন্য একক কী বা একাধিক কী সেটআপ করতে পারেন।

উপর কম্পিউটারে একটি আপনাকে খুঁজে পারে -n, -Nএবং -Tদরকারী অপশন স্থানীয় ইনপুট থেকে সংযোগ বিচ্ছিন্ন করতে কোনো দূরবর্তী কমান্ড চালানোর চেষ্টা (তাই এটা ব্যাকগ্রাউন্ডে রান করতে পারেন), না, শুধু সুড়ঙ্গ খুলুন, এবং একটি TTY তৈরি করা।

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

#/bin/sh
while true; do
    sleep $((60*10))
    ssh -nNT -R 2222:localhost:22 ip.of.computer.b
done

এর মতো একটি স্ক্রিপ্ট বুটে চালানো যেতে পারে /etc/rc.local। মেশিনে লগ ইন করার জন্য আপনার প্রথম পরিবর্তনটি কম্পিউটার এ বুটের দশ মিনিটের পরে শুরু হবে ।


1
খুশী হলাম। সুতরাং আমি মূলত প্রতিটি রিমোট মেশিন স্থানীয় এসএসএইচ বন্দরটি স্থানীয় মেশিনের একটি বন্দরে সুড়ঙ্গ করতাম? প্রতিটি মেশিন কেবলমাত্র চাহিদার ভিত্তিতে সংযোগটি সুড়ঙ্গ করা বুদ্ধিমানের কাজ হতে পারে। আমি প্রতিটি মেশিনকে একটি রক্ষণশীল এইচটিটিপি সংযোগটি খুলতে এবং এক্সএমএল ডেটাটি যখন বিপরীত সংযোগের চেষ্টা করতে চাইতাম, তখন ব্যবস্থাপনাকে আরও সহজ করে তুলতে (এবং আমার সমস্ত বন্দরকে আটকে না রাখতে;]) চাপতে সক্ষম হতে পারি। ধন্যবাদ!
নাফটুলি কে

@ টি কেকোচরান: বেছে নিতে বেশ কয়েকটি বন্দর রয়েছে ... বিশেষত আপনার খানের খাঁটির চেয়ে আরও বেশি কিছু রয়েছে। কোনও এসএসএইচ টানেলটি কীভাবে কোনও HTTP সংযোগটি খোলা রাখার চেয়ে খারাপভাবে খোলা রাখছে?
কালেব

আমি অনুমান করি আপনি ঠিক বলেছেন, আমি কেবল এটি করতে পেরেছিলাম, তবে তারপরে আমাকে মেশিনগুলিতে বন্দরগুলির মানচিত্র তৈরি করতে হবে এবং কোনটি কোনটি মনে করতে হবে, অন্য পথটি অলসভাবে তাত্ক্ষণিকভাবে করা হবে, অর্থাত্ যখন জিজ্ঞাসা করা হবে কেবল তখন একটি এসএসএইচ টানেল তৈরি করতে হবে।
নাফটুলি কে

1
@ টিকেকেরান: আপনাকে যেভাবেই ম্যাপিং করতে হবে, অন্যথায় এমনকি আপনার অলস তাত্পর্য এমন পরিস্থিতিতে চলে যাবে যেখানে তারা প্রত্যেকে ক্লোবার চেষ্টা করেছিল to
কালেব

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