टीम व्यूअर को बदलने के लिए SSH रिवर्स सुरंग पर रिमोट डेस्कटॉप


14

मैं अपने 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 जैसा कि उल्लेख किया गया है, मैंने इस बारे में कई प्रश्न पूछे हैं। उनमें से कुछ ने मुझे समाधान के करीब ले गए और मेरे वर्तमान प्रश्न का आधार बनाया। इस विषय पर मेरे अन्य पूर्व प्रश्न सिर्फ सवाल को सही रूप में पूछने में मेरी अज्ञानता और अक्षमता को दर्शाते हैं। इस बिंदु पर, यह वर्तमान प्रश्न यह बताने की मेरी सर्वोत्तम क्षमता का प्रतिनिधित्व करता है कि मेरी समस्या क्या है और मेरा वांछित समाधान क्या है, लेकिन मेरे कुछ अन्य प्रश्न अभी भी खुले हैं। यहाँ एक है जो प्रासंगिक है।


1
साइड नोट: कृपया "यहां" या "इस" लिंक का उपयोग न करें । अपने लिंक के लिए एक सार्थक नाम प्रदान करें, जैसे आपके द्वारा लिंक किए गए प्रश्न या वेब पेज का शीर्षक।
मार्को

क्या आपने यह प्रश्न पहले नहीं पूछा था? unix.stackexchange.com/questions/82255/...
SLM

@ एसएलएम - मेरे प्रश्न के कुछ लिंक देखें। वे मेरे कुछ संबंधित प्रश्न हैं। मैं अभी भी एक समाधान हासिल करने की कोशिश कर रहा हूं और प्रत्येक प्रश्न मुझे करीब आता दिख रहा है ...
माउंटेनएक्स

यह अविश्वसनीय रूप से जटिल लगता है। मैं अपने विंडोज 8 मशीन के रिमोट डेस्कटॉप का उपयोग SSH'ing द्वारा एक मशीन के लिए भी करता हूं, उसी नेटवर्क पर जो फ़ायरवॉल में एक पोर्ट खुला है।
टिम

@ यह एक रिवर्स SSH सुरंग है और इसकी आवश्यकता है क्योंकि desktopNAT राउटर के laptopपीछे और NAT राउटर के पीछे है।
माउंटेनएक्स

जवाबों:


3

क्या आप nc किये बिना दूसरा चरण करने का प्रयास कर सकते हैं? वह है - केवल -L और -R के साथ VNC करें। मेरा मानना ​​है कि मुद्दा यह है कि आपका नेटकैट सत्र पहले से ही खुले में जुड़ रहा है। तो VNC सामान करते समय netcat का उपयोग न करें।


1

ProxyCommand के बजाय, आपको अपने बिचौलिए sshd.conf के लिए "गेटवेपोर्ट हां" सेट करना चाहिए।

  1. फिर डेस्कटॉप से ​​बिचौलिए तक दूरस्थ सुरंग ले जाएं और बिचौलिया में tcp पोर्ट x खोलें और स्थानीय पर vnc करें।
  2. फिर स्थानीय सुरंग को लैपटॉप से ​​बिचौलिया खोलने के लिए अपने पास ले जाएं और लोकलहोस्ट को एक्स पर टनलिंग करें।
  3. फिर लोकलहोस्ट से कनेक्ट करें: vnc, इसलिए यह लोकल टनल से होकर बिचौलिया और रिमोट टनल से लैपटॉप vnc तक जाएगा।

काम करने के बाद, गेटवेपोर्ट की अधिक सुरक्षित सेटिंग्स के बारे में और जानें।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.