आप इसे अपने स्थानीय पोर्ट 22 और आगे के कनेक्शन को रिमोट सिस्टम के पोर्ट 8090 पर सुनने के लिए कह रहे हैं। आप ऐसा नहीं कर सकते, क्योंकि आपका स्थानीय पोर्ट 22 पहले से ही आपके स्थानीय एसएसएच सर्वर द्वारा लिया गया है।
मुझे लगता है कि आप जो खोज रहे हैं वह रिमोट फॉरवर्डिंग है। के -L 22:localhost:8090
साथ प्रतिस्थापित -R 8090:localhost:22
करने से दूरस्थ होस्ट को पोर्ट 8090 और आपके SSH सर्वर के आगे अनुरोधों को सुनने के लिए कहा जाएगा।
यदि आप कनेक्शन चलाना छोड़ रहे हैं, तो आप बाद में किसी दूरस्थ साइट से प्राप्त कर सकते हैं, तो आप यह सुनिश्चित करना चाहते हैं कि कनेक्शन प्रासंगिक विकल्पों ( -o TCPKeepAlive=yes
या -o ServerAliveInterval=30
) को जोड़कर निष्क्रियता के कारण कनेक्शन को टाइम-आउट नहीं करता है
तो आप कुछ इस तरह से समाप्त करेंगे:
ssh -N user@my_server -R 8090:localhost:22 -o ServerAliveInterval=30
इसके अलावा, यदि आपके और सर्वर के बीच नेटवर्क में से कोई भी किसी भी बिंदु पर है, तो आपके द्वारा निर्दिष्ट किसी भी KeepAlive विकल्प के बावजूद कनेक्शन गिर जाएगा, इसलिए आप इस कमांड को इनटैब में जोड़ना चाहते हैं, या daemontools पैकेज या डिस्ट्रो में देख सकते हैं। समतुल्य, ताकि यह हमेशा बूट पर शुरू होता है और फिर से चालू होता है जब यह किसी अन्य कारण से बाहर निकलता है तो सिस्टम शटडाउन (या आप इसे शेल स्क्रिप्ट से चला सकते हैं जो अनंत रूप से लूप करता है, लेकिन init या daemontools क्लीनर समाधान हैं)।