2011-12-15 10 views
5

मैं कुछ रिवर्स एसएसएच सुरंगों को स्थापित करने की कोशिश कर रहा हूं ताकि मैं कुछ सार्वजनिक सर्वर के साथ कुछ सर्वर को उछालकर अपने घर नेटवर्क तक पहुंच सकूं।यह जानकर कि रिमोट पोर्ट आगे सफल हुआ है या नहीं?

जब मैं इस कमांड चलाएँ: ssh आर: [port_XX]: स्थानीय होस्ट: 22 some_user @ my_server

यहां तक ​​कि अगर "port_XX" है प्रयोग में, यह अभी भी एक सफल ssh कनेक्शन कर देगा करने के लिए "my_server" ।

मैं इस आदेश को सीधे चला रहा हूँ, तो मैं इस समस्या को देख सकते हैं, जब यह मेरे लिए एक चेतावनी देता है: "चेतावनी: दूरस्थ पोर्ट अग्रेषण सुनने के लिए असफल बंदरगाह [port_XX]"

हालांकि, मैं इस ssh शुरू कर रहा हूँ एक क्रोन नौकरी का उपयोग कर एक स्क्रीन सत्र के अंदर सत्र

रिमोट पोर्ट अग्रेषण सफल होने पर मैं प्रोग्रामेटिक रूप से जांच कैसे कर सकता हूं?

स्क्रीन सत्र "स्क्रीन-एलएस" के साथ चेक किया जा सकता है, एसएसएच सत्र भी आसानी से चेक किया जाता है, लेकिन रिमोट पोर्ट अग्रेषण ...?

(कृपया मुझे बताएं कि इस सवाल का काफी स्पष्ट नहीं है करते हैं! मैं अपने शोध किया है, लेकिन एक सरल उपाय नहीं मिली है।)

उत्तर

8

जोड़ने -o ExitOnForwardFailure=yes

पूर्ण आदेश कुछ हो जाएगा कोशिश जैसे:

ssh -N -R [port_XX]:localhost:22 -o ExitOnForwardFailure=yes [email protected] 

(-N बस आगे बंदरगाह के लिए उपयोगी है, एक दूरस्थ खोल खोले बिना, हालांकि आप भी पृष्ठभूमि में प्रक्रिया को भेजने के लिए, आप स्क्रीन के नीचे चल रहे हैं की कोई जरूरत नहीं -f जोड़ सकते हैं ..)

+0

आह हा! मुझे पता था कि ऐसा करने का एक आसान तरीका था। मैं विकल्पों को देख रहा था लेकिन इसे कैसे करना है इसका एक अच्छा उदाहरण नहीं मिला। धन्यवाद! – Oarcinae

+0

मेरे लिए काम किया। प्रश्न: इस विकल्प के बिना, अगली विफलता कुछ भी के लिए उपयोगी होने के बाद पीछे की सुरंग है, या यह सिर्फ मृत है? – Eki

संबंधित मुद्दे