उपयोगकर्ता पारदर्शी SSH मल्टीहॉप


2

पोर्ट 9091 पर एक वेब सेवा का उपयोग करने के लिए मेरे पास दो सर्वरों के माध्यम से इस प्रश्न SSH सुरंग के समान ही है (मुख्यतः क्योंकि मैंने यह प्रश्न पूछा था)।

लेकिन अब अंतर यह है कि मैं इसे एक Chrome बुक से एक्सेस कर रहा हूं जो उपयोग नहीं कर सकता है ProxyCommand। यह सब मिला है एक सैंडबॉक्स बॉक्स क्रोम टैब में चल रहा आधार NaCl खोल।

तो मेरे पिछले प्रश्न से एक समीक्षा:

मुझे 3 मशीनें मिलीं:

  • remotePi (रास्पबेरी पीआई, दुनिया में कहीं)
  • localPi (एक और रास्पबेरी पीआई, मेरे स्थानीय नेटवर्क में, मुझे इसकी पूरी पहुँच है, जिसमें रूट भी शामिल है, कोई मॉनिटर नहीं, कोई केबी नहीं, हेडलेस सर्वर के रूप में चल रहा है)
  • Chromebook(मेरी स्थानीय मशीन, जो उसी स्थानीय नेटवर्क पर एक Chrome बुक है, जो localPiसीमित है लेकिन ऊपर दिए गए लिंक के अनुसार SSH है)।

remotePiलगातार SSH सुरंग है localPi, यह निम्नलिखित कमांड को कॉल करके करता है

ssh -N -R 16864:localhost:22 -p 2222 <user_on_lan>@<external_lan_ip>

मैं कर के remotePiटर्मिनल तक पहुँच सकता हूँ

Chromebook> ssh <user_on_localPi>@<localPI_ip>
localPi> ssh -l <user_on_remotePi> -p 16846 localhost

और remotePiमेरे पास एक डेमन सेवा (वेब ​​इंटरफेस) है जिस पर सुन रहे हैं 9091

सब कुछ का एक "ड्राइंग":

                                   16864:tunnel:22   9091:service
Chromebook <--local_net--> localPi  <--internet-->  remotePi

तो मुझे क्या चाहिए:

मेरे Chromebookब्राउज़र पर कॉल करके रिमोटपेई में डेमन सेवा वेब इंटरफ़ेस तक पहुँचें127.0.0.1:9091/web/

मेरे पिछले कंप्यूटर पर (लिंक किए गए प्रश्न पर दिखाया गया, ubuntu लैपटॉप) मैं ProxyCommandअपने कॉन्फिग और कॉलिंग का उपयोग करके कर रहा था ssh -L9091:localhost:9091 user_on_remotePi@remotePi -N, लेकिन अब मैं एक क्रोमबुक पर हूं जो इसका उपयोग नहीं कर सकता है और मेरा मानना ​​है कि ऐसा करने का एक तरीका होना चाहिए। यह वैसे भी।

इसलिए मैं 2 संभावित समाधानों के बारे में सोच रहा था:

  1. कुछ बहुत ही चतुर और लंबे एसएसएच कमांड जो "बदलेंगे" जो ProxyCommandकर रहे थे। मैं इसे हमेशा उस लिंक जैसे ट्यूटोरियल पर देखता हूं लेकिन यह हमेशा होस्ट नाम पर निर्भर करता है, मेरे पास केवल 16864कनेक्ट करने के लिए पोर्ट है।

  2. (पसंदीदा) localPiSSH विन्यास में कुछ जादू जोड़ें जो इसे कुछ गैर-मानक पोर्ट (कहते हैं 2222) और ऑटो-रीडायरेक्ट के कनेक्शन पर सुनेंगे user_on_remotePi:localhost:16864। इसलिए, जब मैं Chromebook से कॉल करता हूं ssh user_on_localPI -p 2222 localPi_ip, तो localPiयह सीधे रिमोटपाइप पर सही उपयोगकर्ता को रीडायरेक्ट करेगा।

जैसा कि आप देख सकते हैं कि मैं एक नेटवर्क नौसिखिया का एक सा हूं, ऐप विकास में मेरी मुख्य विशेषज्ञता है, इसलिए यहां कोई भी मदद मैं बहुत आभारी रहूंगा।

कोई विचार?


1
मेरे लिए थोड़ा जटिल लगता है और मैं ProxyCommand से परिचित नहीं हूं, लेकिन आप कहते हैं कि आपके पास REMOTE, LAN, PC है .. तो क्या Chromebook PC है?
बार्लोप

1
आप उन्हें एक लैन और एक पीसी कॉल करने के बजाय पाई और सीबी कह सकते हैं। दोनों कंप्यूटर हैं और प्रत्येक एक ही लैन के पीछे है।
बार्लॉप

1
तो क्रोमबुक में ssh.exe है? sshd.exe?
बार्लॉप

1
इसलिए इसे HeadlessPi कहें, इसे LAN नहीं कहेंगे। यह एक LAN नहीं है यह LAN पर कंप्यूटर है। तो आपके पास HeadlessPi, RemotePi, ChromeBook है। और HeadlessPi और Chrome बुक एक ही LAN के पीछे हैं।
बार्लोप

1
आपके बाहरी LAN IP पर NAT राउटर संभवतः 22, पोर्ट 22 के अलावा कुछ पोर्ट पर आपके हेडलेस रास्पबेरी पाई पर SSH सर्वर के लिए आगे की ओर पोर्ट करता है, वह पोर्ट कौन सा है? यानी हेडलैश पीआई का ssh सर्वर किस पोर्ट पर चलता है?
बार्लोप

जवाबों:


1

हम वहाँ चैट में मिले

LocalPi>ssh -L *:5678:127.0.0.1:9091  remoteuser@127.0.0.1 -p 16864

फिर क्रोमबुक पर, http://localpi_IP:5678

इसलिए रिमोट पीआई ने एसएसएचआर-आर का निर्माण करते हुए लोकलपी पर 16864 पोर्ट बनाया था।

वह पहले से ही अपनी रास्पबेरी पाई के लिए एक टर्मिनल प्राप्त करने में सक्षम था, localpi>ssh remoteuser@127.0.0.1 -p 16864 हमने अपनी लोकलपी पर पोर्ट 5678 को खोलने के लिए एक -L जोड़ा, इसलिए वह फिर एक डिवाइस जैसे क्रोमबुक से अपने लोकलपी से कनेक्ट कर सकता है, जो कि उसके रिमोटी पर जाता है जो आगे की तरफ जाता है एक वेब सर्वर अपने आप में / उसकी रिमोट पाई।

तो कुल दो ssh कमांड हैं। उनके सुदूर पाई से लेकर उनके स्थानीय ठिकाने तक। और उसकी लोकापी से लेकर उसकी रिमोटीपी तक।

हमने बस दूसरे को, उसकी लोकापी से उसकी रिमोटीपी को संशोधित किया। एक वेब सर्वर को अपने दूरस्थ पाई पर सुरंग के लिए।

यह वास्तव में एक सुरंग के माध्यम से सुरंग है।


@ बॉडियस कनेक्शन को चालू रखने के लिए आप क्या उपयोग करते हैं? उदाहरण के लिए, मान लें कि LocalPi पुनरारंभ होता है? और लगता है कि RemotePi पुनरारंभ होता है? कुछ एक स्क्रिप्ट का उपयोग कर सकते हैं जो एक लूप में ssh चलाता है और इसलिए कनेक्शन के जाने पर फिर से कोशिश करता है। आपने उल्लेख किया है, हालांकि, -N खोल को रोक नहीं पाएगा कि यह कनेक्शन को सक्रिय नहीं रखेगा।
बार्लॉप

मेरा मूल सेटअप इस का अनुसरण कर रहा था: tunnelsup.com/… यह एक छोटी स्क्रिप्ट है जो कनेक्शन की जांच करती है और यदि हर 3 मिनट में चल रही क्रोन जॉब में आवश्यक हो तो कनेक्ट करें। इसलिए यदि कनेक्शन ड्रॉप या पीआई रिबूट करता है, तो यह जल्द ही फिर से कनेक्ट हो जाएगा।
बुडियस
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.