SSH: ssh सर्वर पर शेल के बिना सुरंग


63

मुझे दो मेजबानों के बीच एक सुरंग स्थापित करनी है।

इसके लिए मैं sshइस तरह से उपयोग करता हूं :

ssh -L MY_LOCAL_PORT:FOREIGN_ADDRESS:FOREIGN_PORT MYUSER@SSH_SERVER

उसके बाद, मैं अपने SSH_SERVER में लॉग इन करता हूं।

मैं इस सुविधा से कैसे बच सकता हूँ? मुझे केवल एक सुरंग स्थापित करनी है। मुझे अपने SSH_SERVER में प्रवेश नहीं करना है ...

मैंने -N विकल्प आज़माया है, लेकिन इसने मेरे शेल को व्यस्त रखा है।


SSH -N -L xx: xx: xx उपयोगकर्ता @ सर्वर और <- क्या आपने इससे पहले प्रयास किया है?
लॉरेंस

अरे, आपके पास सही है। मैंने दूसरे होस्ट और -N विकल्प कार्यों पर प्रयास किया है। इसलिए मुझे पता चला कि समस्या मेरे ssh क्लाइंट पर है (मुझे नहीं पता कि क्यों, और मैं इसका कारण खोजूंगा)। आपका बहुत बहुत धन्यवाद!
बाऊ मियाओ

1
man sshदिखाता है कि: ssh -f -L 1234:localhost:6667 server.example.com sleep 10 && irc -c '#users' -p 1234 pinky 127.0.0.1 -f विकल्प पृष्ठभूमि ssh और दूरस्थ कमांड `` स्लीप 10 'को सेवा शुरू करने के लिए समय (10 सेकंड, उदाहरण में) की मात्रा निर्दिष्ट करने के लिए निर्दिष्ट किया जाता है जिसे ट्यून किया जाना है। यदि निर्दिष्ट समय के भीतर कोई कनेक्शन नहीं किया जाता है, तो ssh बाहर निकल जाएगा। `` `
लायनेलो

जवाबों:


71

जैसा कि अन्य पोस्ट में कहा गया है, यदि आप दूरस्थ होस्ट पर संकेत नहीं चाहते हैं, तो आपको -NSSH के विकल्प का उपयोग करना चाहिए । लेकिन यह सिर्फ SSH एक संकेत के बिना चल रहा है, और खोल व्यस्त है।

आपको बस &साइन के साथ पृष्ठभूमि कार्य के रूप में SSH'ing लगाना होगा :

ssh -N -L 8080:ww.xx.yy.zz:80 user@server &

यह बैकग्राउंड में ssh टनलिंग को लॉन्च करेगा। लेकिन कुछ संदेश दिखाई दे सकते हैं, खासकर जब आप एक गैर-सुनने वाले पोर्ट से कनेक्ट करने का प्रयास करते हैं (यदि आप सर्वर अपाचे लॉन्च नहीं किया गया है)। अन्य सामानों को करते समय इन संदेशों को अपने गोले में रखने से बचने के लिए, आप बड़े पैमाने पर STDOUT / STDERR को रीडायरेक्ट कर सकते हैं:

ssh -N -L 8080:ww.xx.yy.zz:80 user@server >/dev/null 2>&1 & 

एसएसएच के साथ मज़े करो।


17
आप io पुनर्निर्देशन के -fबजाय ssh विकल्प का उपयोग कर सकते हैं &
tkrennwa

49

-f -N आप क्या देख रहे हैं:

ssh -f -N -L MY_LOCAL_PORT:FOREIGN_ADDRESS:FOREIGN_PORT MYUSER@SSH_SERVER

3
एक बार सुरंग स्थापित हो जाने के बाद, आप इसे इस विधि के साथ कैसे बंद करते हैं?
मैग्नेटिक

@magnetik इस प्रक्रिया को खोजें psऔर killइसे
neu242

13
@magnetik और @ neu242 "मास्टर सॉकेट" का उपयोग करने के लिए बेहतर है ssh -N -f -M -S /tmp/file-sock -L port:server:port_to user@...ताकि आप बाद में ssh -S /tmp/file -o exit user@....(या मार) के साथ संबंध को मार सकें । इस तरह, पीएस की जरूरत नहीं है। आप उस फ़ाइल को ~ / .ssh / config में स्वचालित रूप से बनाने के लिए कह सकते हैं।
मेटल

1
मेरा मतलब है "नियंत्रण सॉकेट" और "मास्टर सॉकेट" नहीं
13

8
यह होना चाहिए ssh -S /tmp/file-sock -O exit, नहीं -o en.wikibooks.org/wiki/OpenSSH/Cookbook/…
fetsh
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.