मैं ऐसे कैसे कॉन्फ़िगर कर सकता हूं कि मैं हमेशा गतिशील आईपी पर इंटरनेट पर अपने सिस्टम को एसएसएच कर सकता हूं?


11

मूल रूप से मैं टीमव्यूअर की तरह कुछ करने में सक्षम होना चाहता हूं, जहां नेटवर्क कॉन्फ़िगरेशन क्या है, जब तक कि मेरे ssh सर्वर (मशीन A) और ssh क्लाइंट (मशीन B) दोनों के पास इंटरनेट एक्सेस (और कुछ 3rd सर्वर, मशीन C) है ), मैं पहुंच प्राप्त कर सकता हूं - इसका कारण यह है कि मैं मशीन ए को चारों ओर ले जाने में सक्षम होना चाहता हूं, इसे बिजली में प्लग कर सकता हूं, इसे कई पूर्व-कॉन्फ़िगर वाईफाई नेटवर्क (प्रत्येक एक अद्वितीय / अलग) से ऑटो-कनेक्ट करें , बिना नेटवर्क पर पोर्ट-फ़ॉरवर्डिंग या समान कॉन्फ़िगर किए बिना, और मशीन बी से इंटरनेट के माध्यम से लॉग इन करने में सक्षम हो

मैं यह कैसे हासिल कर सकता हूं? मैं हैंडशेक के साथ मदद करने के लिए स्थैतिक आईपी पते के साथ एक सर्वर पर कुछ सेट करने में कोई आपत्ति नहीं करता, लेकिन मैं किसी तीसरे पक्ष के सर्वर को भी बुरा नहीं मानता, अगर कुछ पहले से मौजूद है (जैसे यह टीमव्यूअर के लिए कहता है)

स्पष्टता के लिए संपादन: मेरे पास 3 मशीनें हैं, एबी और सी

ए एक हेडलेस रास्पबेरी पाई है जिसे यादृच्छिक स्थानों पर संचालित / बंद किया जाएगा, पूर्व-कन्फ्यूजन वाईफाई नेटवर्क से कनेक्ट करें

बी एक उचित मॉनिटर, कीबोर्ड, आदि के साथ मशीन है जिसे मैं से कनेक्ट करना चाहता हूं

C एक किराए पर AWS सर्वर है जो मेरे पास एक स्थिर IP पते के साथ है, जो B से SSH का मज़बूती से उपयोग कर सकता है, और B को A से कनेक्ट करने में मदद करने के लिए जो भी आवश्यक है उसे स्थापित कर सकता है


क्या आप तीसरी मशीन पर जा सकते हैं?
Anthon

@ एंथन मुझे ऐसा लगता है, मैंने उन्हें एबी और सी का नाम दिया और उनके लिए विवरण जोड़ा, उम्मीद है कि यह साफ हो जाएगा
user2813274

कफ no-ip.com खांसी
यहोशू

1
यदि आपके स्थान पर परिधि फ़ायरवॉल रिटर्न ट्रैफ़िक की अनुमति नहीं देता है तो no-ip.com मदद नहीं करेगा!
बॉबस्ट्रो

मैं sshसुरंगों का उपयोग करता था , बहुत संक्षेप में। मैं उन्हें उठने के लिए कभी नहीं मिला, हालांकि, साथ भी autossh; यदि अपलिंक किसी भी कारण से गिरा, तो उन्हें हमेशा हाथ से ही चालू करना होगा। आखिरकार मैंने ओपन वीपीएन के साथ अपने लिए एक छोटा वीपीएन सेट किया, और यह अच्छी तरह से काम कर रहा है।
ब्लैकलाइट शाइनिंग

जवाबों:


11

जैसा कि आपके पास इंटरनेट पर मशीन सी है, नाम से एक विशेष खाता बनाएं sesame, और ए पर आप एक सार्वजनिक / निजी कुंजी के साथ एक खाता बनाते हैं जिसमें से आपने सार्वजनिक कुंजी को sesameसी पर खाते में कॉपी किया है।

अब आप A से C में लॉगिन कर सकते हैं, लेकिन इसके बजाय कि आप क्या करें:

ssh -N -R 19930:localhost:22 sesame@yourserverC

(आप इसे स्लीप स्टेटमेंट या उदाहरण के लिए 10 सेकंड के साथ जोड़ सकते हैं और इसे एक अंतहीन लूप में लपेट सकते हैं ताकि वाईफाई के टूटने के कारण कनेक्शन फिर से स्थापित हो जाए)

मशीन B से, सामान्य रूप से आपके पास C पर जो भी खाता है, उसमें लॉगिन करें ( sesameखाता नहीं हो सकता है, लेकिन विभिन्न खाते वह हैं जो मैं उपयोग करता हूं)। और एक बार जब आप C पर हों, तो A का उपयोग करके लॉगिन करें:

ssh localhost -p 19930

आप निश्चित रूप से 19930 से भिन्न संख्या का उपयोग कर सकते हैं।

यदि आपकी निजी कुंजी A से सुरक्षित नहीं है ssh -N -R ..., /etc/rc.localतो इससे चलाना संभव है। उस मामले में sesameसीमित कार्यक्षमता के साथ एक अलग खाता बनाना सुनिश्चित करें , ताकि जब आपकी मशीन ए समझौता / चोरी हो जाए, तो आपके सर्वर सी के लिए जोखिम सीमित हो। यही कारण है कि मैं B से C प्राप्त करने के लिए एक अलग खाते का उपयोग करने की सलाह देता हूं।

आप वास्तव में के लिए लॉगिन खोल सेट कर सकते हैं sesameमें /etc/passwdकरने के लिए /bin/falseहै, तो आप नहीं रह गया है लॉगिन करने के लिए खाते का उपयोग कर सकते हैं।


यह समाधान TeamViewer का उपयोग करने से अलग है, वहां सर्वर का उपयोग बंदरगाहों को खोलने के लिए किया जाता है जो फिर सीधे संवाद करने के लिए पुनर्निर्देशित होते हैं। जैसे बिटटोरेंट जैसे प्रोग्राम मशीनों को डाउनलोड करने से पहले सीधे संवाद करते हैं (बिना अग्रिम में बंदरगाहों को खोलने के लिए)।
Anthon

तो मुख्य अंतर यह है कि इस तरह से सभी ट्रैफ़िक सर्वर सी, बनाम सी के माध्यम से केवल एक लिंक स्थापित करने के लिए उपयोग किया जाता है, और फिर शेष कनेक्शन के लिए उपयोग नहीं किया जा रहा है - मैं इसके साथ ठीक हूं। आपके पास एक अच्छा बिंदु है जहां तक ​​सुरक्षा जाती है, क्या ऐसा कुछ है जो मुझे विशेष रूप से करना चाहिए तिल को लॉगिंग के नंगे न्यूनतम के अलावा सी पर कुछ भी करने में असमर्थ होना चाहिए? (
आरएचईएल

1
@ user2813274 वास्तव में ट्रैफ़िक का अल इस परिदृश्य में C से होकर गुजरता है (जो बिटकॉइन से उपयोगीता लेगा)। मुझे यकीन नहीं है कि आप sesameC पर खाते को कितनी दूर तक सीमित कर सकते हैं , यह हो सकता है कि आप इसे /bin/falseलॉगिन शेल के रूप में चला सकते हैं (क्योंकि ssh वास्तव में कभी लॉग नहीं होता है), या अन्यथा इसे एक command=पैरामीटर में जोड़कर सीमित करें~/.ssh/authorized_keys
एंथन

@ user2813274 यदि आपने अपने आप को आज़माया नहीं है: यदि आपके पास रिवर्स प्रॉक्सी सेट करने के लिए एक विशेष खाता है, तो आप लॉगिन शेल को बदलकर उस खाते में लॉगिन को अक्षम कर सकते हैं /bin/false
एंथन सेप

1
@ user2813274 हाँ मुझे लगता है कि बाहर की कोशिश की और यह मुझे रिवर्स सुरंग सेट करने देते हैं (आप आप सर्वर सी को पाने के लिए एक अलग खाते की आवश्यकता करने के लिए ssh localhost -p portnumनिश्चित रूप से)
Anthon

7

अपने रास्पबेरी पाई पर एक आईपीवी 6 सुरंग (जैसे सिक्सक्स ) स्थापित करें । अब आपके पास एक स्थायी स्थैतिक IPv6 पता होगा जो आपके पीआई ऑनलाइन होने पर ऑनलाइन आएगा। सुनिश्चित करें कि आप अपने पाई को सुरक्षित कर लें क्योंकि यह अब दुनिया से जुड़ा हुआ है।

यदि आपका बी IPv6 नेटवर्क से जुड़ा है, तो सीधे Pi से कनेक्ट करें। यदि B किसी IPv6 नेटवर्क से कनेक्ट नहीं है, तो C को जंप सर्वर के रूप में उपयोग करें, जहाँ आप IPv4 से C से कनेक्ट करते हैं और फिर IPv6 से C से अपने पाई पर Ssh करते हैं।


मुझे यह पसंद है क्योंकि इसे सी की भी आवश्यकता नहीं है यदि नेटवर्क IPV6 का समर्थन करते हैं, तो मुझे इसे बाहर करने की कोशिश करनी होगी - हालांकि किसी भी मुद्दे पर फ़ायरवॉल डिफ़ॉल्ट रूप से इसे रोक रहा है?
user2813274

1
IPv6 को टनल करने के लिए सिक्सक्स एक से अधिक प्रोटोकॉल प्रदान करते हैं। यदि आप एनीथिंग इन एनीथिंग (AYIYA) का उपयोग करते हैं, तो आपको इंटरनेट से पाइ से टीसीपी पोर्ट 3874 और यूडीपी पोर्ट 5072 की आवश्यकता होगी। घरेलू नेटवर्क पर, यह ठीक होना चाहिए; कॉर्पोरेट या कैंपस नेटवर्क अलग हो सकते हैं।
garethTheRed

सुरंग स्थापित करने योग्य लग रहा था, लेकिन ऐसा लगता है कि मुझे सिक्सक्स सेवा के लिए साइन अप करना होगा, उनके लिए आईपी पते के साथ मुझे वापस पाने के लिए प्रतीक्षा करें, आदि - अभी तक इतना सरल नहीं है - अभी भी संभवतः एक अच्छा समाधान है, लेकिन मैं मुझे लगता है कि मैं अभी के लिए जाने जा रहा हूँ इसका मार्ग नहीं लगता।
15:28 बजे user2813274

1

इस पर भी एक नजर:

उपयोग की गई तकनीक वही है जो स्वीकृत उत्तर में वर्णित है, लेकिन यह कुछ स्क्रिप्ट का उपयोग चीजों को स्वचालित करने और समाधान को अधिक सामान्य बनाने के लिए करती है। यह एक डॉकटर कंटेनर के अंदर पूरे कॉन्फ़िगरेशन को भी बनाता है, ताकि मुख्य प्रणाली सुरक्षित हो जाए ताकि कुछ समझौता किया जा सके।

हालाँकि यह A से C तक स्वचालित कनेक्शन प्रदान नहीं करता है, इसे मैन्युअल रूप से शुरू करना होगा। हो सकता है कि आप समाधान को थोड़ा अनुकूलित कर सकते हैं ताकि यह वही करे जो आप चाहते हैं।


0

शायद आपको ssh या टनलिंग कॉन्सेप्ट के अलावा अन्य उपयोग करने की आवश्यकता है .. मेरा सुझाव है कि आप व्हाट्सएप या टेलीग्राम जैसी मैसेजिंग कॉन्सेप्ट का उपयोग करें .. लेकिन मुझे लगता है, अगर आप vim जैसी किसी चीज का उपयोग करना चाहते हैं, तो यह ssh जितना अच्छा नहीं है।

टेलीग्राम में टेलीग्राम-क्ली क्लाइंट होता है जिसे आप कुछ कमांड को स्वीकार करने और निष्पादित करने के लिए संशोधित कर सकते हैं और इसे रास्पि में लागू कर सकते हैं।

यदि आप टेलीग्राम का उपयोग करते हैं तो आप अपने नेटवर्क को सरल बना सकते हैं और हब को करने के लिए C मशीन को कम से कम कर सकते हैं क्योंकि C सर्वर को टेलीग्राम मैसेजिंग सर्वर के साथ जोड़ दिया जाता है .. टेलीग्राम पहले से ही iphone और android क्लाइंट के साथ आते हैं इसलिए मुझे नहीं लगता कि आपको अपने B की आवश्यकता है मशीन भी, आप विशिष्ट ओएस के लिए टेलीग्राम क्लाइंट स्थापित कर सकते हैं यदि आप चाहते हैं .. सुरक्षा? टेलीग्राम संदेश की परिकल्पना की गई है .. यदि कोई आपकी रास्पि को ddos ​​करना चाहता है? वे पहले टेलीग्राम सर्वर ddos ​​करेंगे ..

तो जब तक आपका रास्पि टेलीग्राम सर्वर से कनेक्ट हो सकता है (बस आपका रास्पि इंटरनेट से कनेक्ट होता है) यहां तक ​​कि रास्पी फ़ायरवॉल / प्रॉक्सी / निजी आईपी / डायनेमिक आईपी के पीछे है, आप हमेशा रिमोट कर सकते हैं ..

इस अवधारणा के साथ, आप कहीं भी, कभी भी रिमोट कर सकते हैं।


वाट। यह असुरक्षित है, आप कुछ रैंडम मैसेजिंग ऐप पर भरोसा कर रहे हैं, आप कह रहे हैं कि ओपी ने कहा कि इसे काम करने के लिए रैंडम मैसेजिंग ऐप को संशोधित करना चाहिए। यह भी एहसास नहीं है कि रैंडम मैसेजिंग ऐप पूरी तरह से विम जैसी चीज के साथ टूट जाएगा और भयानक विलंबता होगी।
फिर भी

ठीक है, अगर आप इसे सिर्फ कमांड भेजने के लिए उपयोग करते हैं, तो मुझे लगता है कि यह ठीक है .. अगर आप इसका उपयोग विम जैसी चीज के लिए करते हैं, तो मुझे नहीं लगता कि यह अच्छा है .. अच्छी सलाह .. मैं अपना जवाब संपादित करूंगा
विसाकोस्नो त्रिहतमजा

मुझे नहीं लगता कि यह वही है जो मैं चाहता हूं, मैं पूर्ण शेल एक्सेस चाहता हूं, वास्तव में इससे कम कुछ भी नहीं है - जहां तक ​​कि पाई को कम करना है .. मैं वास्तव में चिंतित नहीं हूं, सबसे पहले क्योंकि मुझे एक विशेष सेटअप करना है यहां तक ​​कि इसे खुद से कनेक्ट करें, दूसरा, क्योंकि यह कनेक्शन रुक-रुक कर और बेतरतीब ढंग से बदलते हुए
रास्ते होंगे

0

मुझे लगता है कि आपको रिवर्स एसश पोर्ट फॉरवर्डिंग पर एक नज़र डालनी चाहिए। संक्षेप में, आप पहले नीचे के सिंटैक्स का उपयोग करके A से C तक ssh आरंभ करते हैं और फिर उस पोर्ट का उपयोग C से A तक वापस करते हैं। जब आप ऐसा करते हैं तो आप A के होम फ़ायरवॉल को नहीं मारेंगे क्योंकि R-Pi पहले से ही है एक सुरंग।

ssh -R 2210: localhost: 22 myCoolAwsSite.com

जब आप ऐसा करते हैं, तो कृपया सुरक्षा सुधारों पर विचार करें। आप कुछ क्रोन जुज़ित्सु जोड़ सकते हैं ताकि रिबूट के बाद कनेक्शन फिर से स्थापित हो।


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