घर के कंप्यूटरों को एस.एस.एच.


21

मेरे पास घर पर कई मशीनें हैं जिन्हें मैं एसएसएच और वीएनसी का उपयोग करके स्कूल से एक्सेस करना चाहता हूं। ऐसा करने के लिए मैंने उन्हें स्थिर आईपी दिया:

  • 192.168.1.50: विंडोज
  • 192.168.1.51: उबंटू
  • 192.168.1.52: रास्पबेरी पाई / रास्पियन

मुझे पता है कि एसएसएच पोर्ट 22 का उपयोग करता है, इसलिए मैं अपने राउटर पर इस पोर्ट को 192.168.1.51:22 पर फॉरवर्ड कर सकता हूं, लेकिन इस तरह से मैं अपने रास्पबेरी पाई को एसएसएच नहीं कर पाऊंगा। क्या कोई ऐसा तरीका है जिससे मैं इसे स्थापित कर सकता हूं ताकि दोनों मशीनों का उपयोग किया जा सके?


10
आप अलग ssh पोर्ट का उपयोग कर सकते हैं। मुझे नहीं पता कि खिड़कियों पर कितना मुश्किल है, लेकिन लिनक्स पर इसे गैर-स्टार्डर्ड पोर्ट में बदलना आसान है । इस तरह से आप मशीन को जीतने के लिए पोर्ट 22 को फॉरवर्ड कर सकते हैं (वहां कोई बदलाव नहीं), और रास्पबेरीपीआई को दूसरा पोर्ट (गैर-मानक)।
बिस्टोको

2
@Melebius, यह पुराना है, लेकिन फिर भी एक अच्छा पठन है, मेरे लिए महत्वपूर्ण हिस्सा है "मूल तर्क जो मैंने बनाने की कोशिश की है: सुरक्षा-थ्रू-अस्पष्टता नहीं है।", यह एक ज़रूरत के बारे में है और इसे आसानी से हल करना है। । उस ने कहा, हो सकता है कि उसे ubuntu या pi पोर्ट बदलने की ज़रूरत नहीं है, बस अलग-अलग राउटर-पोर्ट्स को प्रत्येक 22 मशीन पोर्ट पर फॉरवर्ड करें।
बिस्तोको

1
@ बिसकोको सहमत। हालांकि, ओपी बाहरी दुनिया में एसएसएच पहुंच को उजागर करने वाला है और ऐसे मामले में सुरक्षा पर हमेशा विचार किया जाना चाहिए। कंप्यूटर पर अलग-अलग पोर्ट सेट करने से ओपी की समस्या हल नहीं होती है क्योंकि उसे अपने राउटर पर विभिन्न पोर्ट (= पोर्ट फ़ॉरवर्डिंग) को सक्षम करने की आवश्यकता होती है।
मेलेबियस

6
@Melebius ऑफ़ टॉपिक, लेकिन मैं कभी भी 22 का उपयोग नहीं करता, सिर्फ इसलिए कि स्वचालित बॉट मेरे सर्वर पर 24/7 दस्तक नहीं देगा। यह एक वास्तविक हमलावर (या अच्छी तरह से लिखित स्क्रिप्ट) को बाहर नहीं रखेगा, लेकिन यह मेरी लॉग प्रविष्टियों की संख्या को कम करता है।
काज वोल्फ

4
आप बस उनमें से एक (जो सार्वजनिक सुलभ है) से कनेक्ट कर सकते हैं और फिर इस एक से स्थानीय पते का उपयोग करके दूसरे से कनेक्ट कर सकते हैं।
tkausl 8

जवाबों:


32

यदि आपके पास IPv6 है, तो आपको पोर्ट अग्रेषण की भी आवश्यकता नहीं है! बस अपना स्थायी IPv6 पता प्राप्त करें (आपके मैक पते के आधार पर, इसलिए यह वही रहने की गारंटी है जब तक कि आपका ISP नहीं जानता कि IPv6 कैसे काम करता है) और इसका उपयोग सुरंग में करने के लिए करें। जैसा कि आपका IPv6 पता सार्वजनिक-सामना करने वाला है और दुनिया को अनुमति देता है। अपने स्थानीय NAT के माध्यम से जाने के बिना आपको एक्सेस करने के लिए, आपको पोर्ट-फ़ॉरवर्डिंग को कहीं भी सक्षम करने की आवश्यकता नहीं है। यह "बस काम करेगा।"

हालाँकि, नोट करें कि IPv6 अभी भी विश्व स्तर पर समर्थित नहीं है, और आपके इंटरनेट कनेक्शन और दूरस्थ इंटरनेट कनेक्शन दोनों को ऐसा करने के लिए पूरी तरह से IPv6 का होना आवश्यक है।

हालांकि, अगर आप ज्यादातर लोगों की तरह हैं और केवल IPv4 है, तो अभी भी एक रास्ता है! कुछ राउटर आपको विशिष्ट स्रोत पोर्ट को विशिष्ट गंतव्य पोर्ट पर अग्रेषित करने की अनुमति देते हैं, जैसे:

यहां छवि विवरण दर्ज करें

इस उदाहरण में, पोर्ट 22को सीधे मेरी मशीन पर भेजा जाता है sheepdog, जबकि पोर्ट 292को पोर्ट 22पर भेजा जा रहा है coyote

अंत में, यदि आपके राउटर में यह सुविधा नहीं है, तो आप पोर्ट को बदल सकते हैं, क्योंकि SSH केवल पोर्ट पर चलने तक सीमित नहीं है 22। आप इसे अपनी इच्छानुसार कुछ भी सेट कर सकते हैं (जिसका उपयोग नहीं किया जा रहा है)।

में /etc/ssh/sshd_config(आपको संपादित करने के लिए रूट की जरूरत है, इसलिए sudo nano /etc/ssh/sshd_config), फ़ाइल के शीर्ष पर एक पंक्ति है:

# What ports, IPs and protocols we listen for
Port 22

इसे जो आप चाहते हैं उसे बदलें:

# What ports, IPs and protocols we listen for
Port 2992

SSH सर्वर के साथ पुनरारंभ करें sudo service ssh restart, और राउटर पर पोर्ट को अग्रेषित करें।


हालांकि, इस उपयोग के मामले के लिए, मैं इस बात पर विचार करूंगा कि क्या SSH सुरंगें करना सही हैं। शायद आपको अपने होम नेटवर्क पर एक समर्पित वीपीएन सर्वर स्थापित करना चाहिए? यह आपको अपने पूरे घर के नेटवर्क को कहीं से भी एक्सेस करने की अनुमति देगा , बशर्ते आपके पास वीपीएन द्वारा आवश्यक सुरक्षा क्रेडेंशियल हों। इसके अतिरिक्त, वीपीएन के साथ थोड़ा कम ओवरहेड है; आपको आमतौर पर केवल एक मशीन के लिए एक पोर्ट फॉरवर्ड करना होगा।


2
यदि आपका ISP IPv6 का समर्थन नहीं करता है, तो आप IPv6 पते प्राप्त करने के लिए IPv6 सुरंग ब्रोकर का उपयोग कर सकते हैं।
एंड्रे बोरी

1
"इस सुविधा" से, आप एक पोर्ट को अलग पोर्ट पर अग्रेषित करने का मतलब है?
लियू सियुआन

@ लियुसियुआन येप। मुझे पता है कि यह अजीब है, लेकिन मैंने कुछ राउटर देखे हैं जो इसे संभाल नहीं सकते हैं। मेरा पुराना आईएसपी-राउटर भी कोशिश नहीं कर सका।
काज वोल्फ

DId काफी हिस्सा है कि IPv6 नहीं मिलता है। क्या हम यह मानेंगे कि IPv6 पते प्रदान करने वाले सभी ISP आपको नेटवर्क पर प्रत्येक डिवाइस के लिए एक (लगातार) अलग-अलग देते हैं?
jjmontes

1
@jjmontes यदि आपका ISP सक्षम है, तो आपको पूर्ण / 64 (या शायद कम, लेकिन फिर भी हर मशीन को एक असाइन करना पर्याप्त होगा)
कज़ वोल्फ

19

इस समस्या को हल करने का एक आसान तरीका है कि आप अपने राउटर से विभिन्न पोर्ट को अपनी मशीनों के पोर्ट 22 तक मैप करें। उदाहरण के लिए, आपके राउटर में निम्नलिखित सेटिंग्स हो सकती हैं (मान लें कि आपके राउटर में IP है 1.2.3.4)

1. 1.2.3.4:22   --> ubuntu:22
2. 1.2.3.4:8888 --> raspberrypi:22
3. 1.2.3.4:9999 --> windows:22 (or some other port)

फिर जब आप ssh का उपयोग करते हैं, तो उस पोर्ट को निर्दिष्ट करें जिसे आप टाइप करके उपयोग करना चाहते हैं

$ ssh <username>@<router ip> -p <your port>

अब आपको अपनी सभी मशीनों से जुड़ने में सक्षम होना चाहिए।


11

यदि आप जानते हैं कि आपका कंप्यूटर हमेशा चालू रहता है, तो आपको इसे ssh प्रॉक्सी के रूप में उपयोग करने की भी संभावना है।

मान लीजिए कि आपके बाहरी आईपी पते (यानी myhome.dyndns.com या जो भी हो) के लिए एक डोमेन नाम सेटअप है, आप क्या करेंगे जो एक कंप्यूटर पर कनेक्ट होता है (मान लीजिए कि रास्पबेरी हमेशा ऊपर है, और आप अपने राउटर से पोर्ट को आगे भेजते हैं यह), आपके ssh कनेक्शन होंगे:

स्कूल -> (राउटर, यहां पारदर्शी) -> रास्पबेरी -> ubuntu या खिड़कियां

अब, स्कूल में आपके ~ / .ssh / config में, लाइनें जोड़ें:

Host ubuntu 192.168.1.51
    Hostname ubuntu (change to match your setup)
    User myraspberryuser  (change it ;-) )
    IdentityFile ~/.ssh/id_rsa   (The path to your private key, on the school computer, better on an usb key if public computer)
    ForwardAgent yes
    RequestTTY yes
    ProxyCommand ssh -W %h:%p %r@myhome.dyndns.com

तब कनेक्ट करने के लिए:

ssh-add ~/.ssh/id_rsa # to do only once per session
ssh myuser@ubuntu (login without password)

अब से, यदि आप ssh ubuntu टाइप करते हैं, तो कंप्यूटर पहले रास्पबेरी से कनेक्ट होगा, और फिर ubuntu कंप्यूटर में ssh सत्र शुरू होगा।

मैं आपको सलाह देता हूं कि आप जो भी पोर्ट चुनते हैं, वह /etc/sshd.conf में पासवर्ड को अक्षम करने के लिए ssh कुंजी के माध्यम से लॉगिन करने की अनुमति देता है। इस तरह, यदि आप रास्पबेरी पर और ubuntu पर पैरामीटर सेटअप करते हैं, तो पैरामीटर 'फॉरवर्डएजेंट' के साथ, आपको केवल कुंजी को अनलॉक करना होगा और फिर कनेक्ट करने के लिए कोई पासवर्ड की आवश्यकता नहीं है। इस तरह, भले ही बॉट आपके ssh पर लॉगिन करने की कोशिश कर रहे हों, आप पासवर्ड लॉगऑन को अस्वीकार करने के बाद कभी भी लॉगिन नहीं कर पाएंगे।

बोनस, यह भी scp, scp foo ubuntu के साथ काम करता है: / tmp / foo आगे के मापदंडों के बिना एक ही सेटअप का उपयोग करेगा। बोनस 2, इस सेटअप को घर में किसी भी बदलाव की आवश्यकता नहीं है, अगर कल आप और एक अन्य कंप्यूटर, बस कोड को अपने ssh config में कॉपी / पेस्ट करें, होस्ट और आईपी को बदलें, यही है, राउटर पर एक नया पोर्ट खोलने की आवश्यकता नहीं है


क्या SSH के लिए एक मध्यवर्ती के रूप में एक मशीन का उपयोग करने के लिए कोई नकारात्मक पहलू है? मान लें कि मैं नेटवर्क के अंदर अन्य कंप्यूटरों से कनेक्ट करने के लिए अपने रास्पबेरी पाई का उपयोग करता हूं, क्या इसका प्रदर्शन कार्य को प्रभावित करेगा?
acourchesne

1
हां, रास्पबेरी थ्रूपुट को सीमित कर सकता है क्योंकि यह सर्वर और क्लाइंट के रूप में काम करना चाहिए। यदि आप पर्याप्त आश्वस्त हैं, तो आप ssh सुरंगों के साथ एक ही परिणाम प्राप्त कर सकते हैं। इस तरह, रास्पबेरी केवल एक सर्वर के रूप में कार्य करता है लेकिन आपके स्कूल के पीसी को दो ग्राहक करने होंगे।
बर्तन

4

मैं ऐसा करता हूं - मैं आरपीआई छोड़ता हूं और हर समय सीधे राउटर में प्लग करता हूं (चूंकि यह सबसे सस्ता है) और बस एसएचएस में, फिर इसे दूसरों से उछाल दें - इसे कभी भी बहुत ध्यान देने की आवश्यकता नहीं है।

यह भी संभव है कि वीएनसी / आरडीपी एक GUI एक ssh पाइप, थोड़े मज़े पर, या एक पोर्ट को अग्रेषित करें जो आपको निजी रखते हुए अपने डेस्कटॉप कंप्यूटर पर एक सर्वर को ब्राउज़ करने देता है।

मैंने इस उत्तर को जोड़ने का कारण आपको कुछ सुझाव दिए हैं।

1) 22 की तुलना में एक अलग पोर्ट का उपयोग करें। आप इसे पीआई पर 22 छोड़ सकते हैं, लेकिन अपने राउटर पर आने वाले पोर्ट को 10,000 से अधिक में बदल सकते हैं ... अन्यथा आप एक दिन में दर्जनों से सैकड़ों हमले करेंगे - और एक बार आप एक एसएसएच होस्ट को चलाने के लिए जाना जाता है दूसरा एक शोषण पाया जाता है, आप स्वामित्व में हैं।

2) उपयोगकर्ता नाम / पासवर्ड के बजाय प्रमाण पत्र का उपयोग करें - उपयोगकर्ता नाम / पासवर्ड लॉगिन को पूरी तरह से अक्षम करें।

3) यदि आपका आईपी पता बदल सकता है, तो अपने आप को डीएनएस होस्टमेम प्राप्त करने के लिए एक डायनड्स टाइप सेवा का उपयोग करें (मैं नोइप का उपयोग करता हूं, यह मुफ़्त है और वे आपके आईपी पते को अपडेट करने के लिए एक लिनक्स क्लाइंट का समर्थन करते हैं - मुझे लगता है कि आप इसे केवल प्राप्त कर सकते हैं अब पाई)। अभी भी कुछ अन्य कंपनियां हैं जो मुफ्त में इसकी पेशकश करती हैं।

4) अपने pi (या जो भी आप ssh में रखें) को अद्यतित रखें (sudo apt-get update)। मेरा मानना ​​है कि ssh अब तक बहुत अच्छी तरह से वेट किया गया है, लेकिन मुझे विश्वास है कि https ...


3

शक था कि क्या यह एक जवाब के बजाय एक टिप्पणी के रूप में बेहतर होगा, लेकिन मैं इसे यहाँ वैसे भी पोस्ट करूंगा।

ऐसा करने से पहले कुछ बातें जो आपको सोचनी चाहिए:

  1. आप अपने सिस्टम को इंटरनेट पर खोलेंगे, ताकि आप बेहतर तरीके से सुनिश्चित कर सकें कि वे अच्छी तरह से पैच किए गए हैं और आपका सुरक्षा कॉन्फ़िगरेशन कठोर है (उदाहरण के लिए रूट लॉगिन की अनुमति नहीं है और पासवर्ड के बजाय प्यूब्स का उपयोग करें)।
  2. आपका सार्वजनिक आईपी (whatismyip.com देखें) बदल सकता है, आपके आईएसपी के आधार पर यह दैनिक या लगभग कभी नहीं बदल सकता है। इसका मतलब है कि आपको अपने सार्वजनिक आईपी का पता लगाने का एक तरीका खोजना होगा। आप अपने होम नेटवर्क से प्रतिदिन whatismyip.com पर जा सकते हैं, कुछ ऐप बना सकते हैं, या अपने बदलते सार्वजनिक आईपी को एक स्थिर डोमेन नाम पर मैप करने के लिए डायनेमिक DNS (डीएनडएनएस) का उपयोग कर सकते हैं।
  3. यदि आप IPv4 और NATing से संबंधित सभी परेशानियों को दरकिनार करने के लिए IPv6 का उपयोग करना चाहते हैं, तो आपको IPv6 के साथ-साथ बात करने के लिए अपने उपकरणों, राउटर, ISP, ... की आवश्यकता होगी। कुछ सेवाएँ हैं जो आपकी मदद कर सकती हैं जब आपका ISP IPv6 का समर्थन नहीं करता है, लेकिन आपके उपकरणों और राउटर को इसके बारे में वैसे भी बात करनी होगी।
  4. आप इंटरनेट पर जितने अधिक पोर्ट और डिवाइस खोलते हैं, आपका अटैक क्षेत्र उतना ही बड़ा होता जाता है। मैं आपके नेटवर्क में एक जंप-बॉक्स का उपयोग करने का सुझाव दूंगा, और केवल SSH को इंटरनेट से उस उपकरण तक पहुंचने की अनुमति दूंगा। जंप-बॉक्स मूल रूप से एक बहुत कठोर प्रणाली होगी जिसे आप अपने राउटर से इंटरनेट पर पोर्ट-फॉरवर्ड करते हैं। एक बार उस बॉक्स से कनेक्ट हो जाने के बाद, आप इसके माध्यम से अपने आंतरिक नेटवर्क में SSH कर पाएंगे। जंप-बॉक्स मूल रूप से एक और रास्पबेरी पाई हो सकता है। मैं एक समर्पित डिवाइस का उपयोग करने का सुझाव दूंगा, इसे जितना संभव हो उतना कठोर करने में सक्षम होना चाहिए (कुछ सेवाओं के रूप में संभव के रूप में चलाकर दूसरों के बीच)।
  5. (4a) आपके द्वारा SSH में एक जम्प-बॉक्स रखने के बजाय, आप एक वीपीएन-सर्वर भी सेट कर सकते हैं जो आपको स्कूल में अपने डिवाइस से अपने होम नेटवर्क को ब्राउज़ करने की अनुमति देता है (यदि आउटबाउंड वीपीएन कनेक्शन की अनुमति है)।
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.