मैं अपने SSH (रिवर्स) सुरंग पर अपने लैपटॉप से डेस्कटॉप पर एक दूरस्थ डेस्कटॉप सत्र खोलना चाहता हूं। यह सरल होना चाहिए (या कम से कम करने योग्य), सही? अब तक मैं दूरस्थ डेस्कटॉप में लॉग इन करने के लिए टीम व्यूअर का उपयोग कर रहा हूं। मैं टीम व्यूअर के बिना समान परिणाम प्राप्त करना चाहूंगा।
यहाँ मेरा SSH सुरंग कैसा दिखता है:
laptop--->nat--->middleman<--nat<--desktop
सभी मशीनें लिनक्स चला रही हैं (ज्यादातर कुबंटु 12.04 या ओपनस्यूस 12.3)। मैं किसी भी पोर्ट को बदल नहीं सकता या नेट राउटर पर कोई कॉन्फ़िगरेशन परिवर्तन नहीं कर सकता।
मैं अपनी SSH सुरंग का वर्णन करूंगा क्योंकि VNC / रिमोट डेस्कटॉप समस्या को हल करने के लिए आवश्यक प्रतीत होने वाली समझ मेरे प्रश्न का दिल है। इस पैर के बारे में:
middleman<--nat<--desktop
... यहाँ बताया गया है कि यह कैसे स्थापित किया जाता है:
autossh -M 5234 -N -f -R 1234:localhost:22 user@middleman.com
इस पैर के बारे में:
laptop--->nat--->middleman
मैं निम्नानुसार बिचौलिया से जुड़ सकता हूं:
me@laptop:~$ ssh -i ~/.ssh/id_rsa admin@middleman
हालाँकि, जो मुझे वास्तव में करने की ज़रूरत है वह सीधे डेस्कटॉप से कनेक्ट होता है, बिचौलिया से नहीं। ऐसा करने के लिए मैं बिचौलिया पर netcat ("nc") का उपयोग करता हूं। के आधार पर यह ऐसा लगता है कि nc की आवश्यकता है। इसलिए मैं ProxyCommand और nc का उपयोग करने के लिए लैपटॉप पर अपनी SSH कॉन्फिग फ़ाइल को संपादित करता हूं:
me@laptop:~/.ssh$ nano config
सामग्री हैं:
Host family_desktops
ProxyCommand ssh middleman_fqdn nc localhost %p
User admin
PasswordAuthentication no
IdentityFile ~/.ssh/my_id_rsa
middleman_fqdn
"Middleman.com" कहाँ है
तब मैं सिर्फ एक कदम में "डेस्कटॉप" से जुड़ता हूं:
me@laptop:~$ ssh family_desktops -p 1234
(मुझे यह काम यहां और यहां और अन्य संबंधित सवालों के आधार पर मिला । मैंने इस विषय पर एक टन प्रश्न पूछे हैं क्योंकि मैं इसके साथ कई हफ्तों से जूझ रहा हूं।)
इस SSH कनेक्शन के साथ मैं लेबल किए गए अपने कंप्यूटर पर पूरी तरह से काम कर रहा हूं desktop
। उत्तम।
अब मुझे बस इस SSH सुरंग के ऊपर एक VNC- जैसा (या TeamViewer जैसा) रिमोट डेस्कटॉप समाधान चाहिए। कैसे?
यहाँ मैंने अभी तक कोशिश की है:
बिचौलिया <- नेट <- डेस्कटॉप
autossh -M 5235 -N -f -R 1235:localhost:5901 user@middleman.com
उस कनेक्शन के साथ स्थापित:
x11vnc -autoport 5901
मैं यह सुनिश्चित करने के लिए देखता हूं कि यह 5901 पोर्ट से कनेक्ट होता है, जो यह करता है।
लैपटॉप ---> नेट ---> बिचौलिया <- नेट <- डेस्कटॉप
लैपटॉप ~ /। ssh / config:
Host family_desktops
ProxyCommand ssh -NL 5901:localhost:1235 middleman.com nc localhost 1235
User admin
PasswordAuthentication no
IdentityFile ~/.ssh/my_id_rsa
सुरंग सेटअप:
me@laptop:~$ sudo ssh family_desktops
VNC क्लाइंट:
connect to localhost:5901
यह "सर्वर नहीं मिला" की त्रुटि देता है
मैंने ProxyCommand पर कई विविधताओं की कोशिश की है, उनमें से कोई भी सफल नहीं है। जाहिर है, मैं अनुमान लगा रहा हूं कि ProxyCommand में कौन से पैरामीटर होने चाहिए और जो ssh कमांड लाइन पर होने चाहिए। मैं अपने सेटअप के साथ कुछ संभावित समस्याएं देख सकता हूं, लेकिन मैं यह पता लगाने में सक्षम नहीं हूं कि इससे क्या काम होगा।
PS जैसा कि उल्लेख किया गया है, मैंने इस बारे में कई प्रश्न पूछे हैं। उनमें से कुछ ने मुझे समाधान के करीब ले गए और मेरे वर्तमान प्रश्न का आधार बनाया। इस विषय पर मेरे अन्य पूर्व प्रश्न सिर्फ सवाल को सही रूप में पूछने में मेरी अज्ञानता और अक्षमता को दर्शाते हैं। इस बिंदु पर, यह वर्तमान प्रश्न यह बताने की मेरी सर्वोत्तम क्षमता का प्रतिनिधित्व करता है कि मेरी समस्या क्या है और मेरा वांछित समाधान क्या है, लेकिन मेरे कुछ अन्य प्रश्न अभी भी खुले हैं। यहाँ एक है जो प्रासंगिक है।
desktop
NAT राउटर के laptop
पीछे और NAT राउटर के पीछे है।