में /etc/ssh/sshd
के लिए कंप्यूटर बी सेट:
AllowTcpForwarding yes
TCPKeepAlive yes
से कंप्यूटर एक :
$ ssh -R 2222:localhost:22 ip.of.computer.b
से कम्प्यूटर बी :
$ ssh localhost -p 2222
ध्यान दें कि 2222 एक मनमाना हाई-पोर्ट नंबर है जिसे मैंने चुना था। कंप्यूटर बी पर उस पोर्ट को तब एसएसएच कनेक्शन के माध्यम से कंप्यूटर ए पर पोर्ट 22 पर आरम्भ किया जाएगा। यदि आपके पास कई मशीनें हैं तो आपको प्रत्येक मशीन के लिए एक अलग पोर्ट का उपयोग करना चाहिए।
आपके उपयोग के मामले के लिए आप संभवतः इसे एक स्क्रिप्ट से चलाना चाहेंगे ताकि आप इसे एक डेमॉन बना सकें और समय-समय पर लिंक को गिराए जाने पर फिर से कनेक्ट करने का प्रयास कर सकें। आप शायद आने वाले कनेक्शन को संभालने के लिए कंप्यूटर बी/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
। कंप्यूटर ए बूट्स के लगभग दस मिनट बाद मशीन में प्रवेश करने के लिए आपका पहला बदलाव शुरू होगा ।