SSH का उपयोग होम नेटवर्क से कैसे करें


16

मैंने हाल ही में अपने रास्पबेरी पाई पर एसएसएच की स्थापना की। यह तैर रहा है, खासकर जब से मैं अपने iPhone के माध्यम से ऐप सर्वर ऑडिटर के साथ कंप्यूटर को नियंत्रित कर सकता हूं । अफसोस की बात है, यह केवल स्थानीय नेटवर्क के माध्यम से काम करता है।

जब मैं घर से बाहर होता हूं तो मैं अपना एसएसएच कैसे बना सकता हूं? (अधिमानतः ऐप के साथ काम करता है।)


क्या आप अपने राउटर से पोर्ट आगे भेज सकते हैं?
स्टीव इर्विन

1
@SteveIrwin मैं सबसे अधिक संभावना कर सकता हूं, लेकिन चूंकि मैं नेटवर्किंग-साक्षर नहीं हूं, इसलिए मैं पोर्ट मैप जैसे आसान समाधान को प्राथमिकता दूंगा । वास्तव में ... अगर मैं अपने पीआई के साथ अपने मैक का इंटरनेट साझा करता हूं, तो क्या मैं अग्रेषित पोर्ट को साझा कर पाऊंगा?
xxmbabanexx

1
पोर्ट मैप सेट करना संभवत: पोर्ट मैप का उपयोग करने के लिए कम से कम उतना आसान है। आपको यह बताने की आवश्यकता है कि आपका लैन कैसे सेट किया जाता है
जॉन ला रोय

आपकी सबसे अच्छी शर्त वीवर्स सर्विस (www.weaved.com) को इंस्टॉल करना है, और इसके साथ किया जाना है। इंटरनेट पर आपको मिलने वाले अन्य सभी ट्यूटोरियल आपको निराश करने वाली सड़क पर ले जाएंगे।
इगोरगानापोलस्की

पोस्ट के लिए जो सॉकेटेक्सप के उपयोग का सुझाव देता है, वह आरपीआई कर्ल-ओ पोर्टल में डाउनलोड सॉकेटएक्सप डाउनलोड करने के लिए -O portal.socketxp.com/download/arm/socketxp && chmod + wx sxxp && sudo mv socketxp / usr / local / bin के बजाय linux का उपयोग करता है। फ़ाइल।
जियोन्घन

जवाबों:


20

यहाँ मैं (डेबियन पर) उपयोग किए गए चरण हैं जो आपको उपयोगी लग सकते हैं।

1. पाई के लिए स्टेटिक आईपी सेट करना।

आदेश का उपयोग करके इंटरफेस फ़ाइल को खोलें

sudo nano /etc/network/interfaces

b। इंटरफेस फाइल को निम्नलिखित में बदलें (यह मेरे लिए काम करता है मुझे यकीन नहीं है कि कुछ पंक्तियों को बाहर रखा जा सकता है)।

auto lo
iface lo inet loopback
iface eth0 inet static
address 192.168.1.2  #static ip you want for the pi
netmask 255.255.255.0
gateway 192.168.1.1    # the ip address of the router

c.Check अगर आईपी का उपयोग कर बदल दिया गया है ifconfig आदेश

2. गतिशील डीएनएस को सेट करना

संभवत: आपके ISP द्वारा असाइन किया गया IP पता गतिशील है और इसलिए हमें IP पते में परिवर्तन को हल करने के लिए एक तरीका चाहिए। मैं इसे प्राप्त करने के लिए dnsdynamic और ddclient सॉफ़्टवेयर का उपयोग करता हूं। दोनों ही उपयोग करने के लिए स्वतंत्र हैं।

के साथ एक खाते के लिए साइन a.Sign dnsdynamic

एक नया डोमेन जोड़ें और सूची से एक नाम और डोमेन का चयन करें। आप अपनी पसंद के उप डोमेन के साथ किसी भी उपलब्ध डोमेन का चयन कर सकते हैं। चेक उपलब्धी पर क्लिक करें और फिर जोड़ें

dnsdynamic स्क्रीनशॉट

3. पीट पर ddclient सेट करना

कमांड का उपयोग करके

sudo apt-get install ddclient

b। निम्न कमांड का उपयोग करके ddclient के लिए कॉन्फ़िगरेशन फ़ाइल खोलें और निम्न पंक्तियाँ जोड़ें।

sudo nano /etc/ddclient.conf

और फ़ाइल को निम्न में बदलें।

# /etc/ddclient.conf
daemon=600
timeout=10
ssl=yes
protocol=dyndns2
use=web, web=myip.dnsdynamic.com
server=www.dnsdynamic.org
login=x@gmail.com  #userid for dnsdynamic.com
password='xxxx'      #password for the same put inside quotes
x.dnsdynamic.com  #the domain name you created

और फ़ाइल सहेजें।

d। हम चाहते हैं कि ddclient सर्विस रिबूट पर अपने आप शुरू हो जाए। इसके बाद निम्न कार्य करें।

sudo nano /etc/rc.local

बाहर निकलने से पहले निम्न कमांड जोड़ें 0 (जो अंतिम पंक्ति है)

sudo /usr/sbin/ddclient -daemon 600 -syslog

फ़ाइल सहेजें। ddclient या तो अपने pi को रिबूट करें या प्रॉम्प्ट पर उपरोक्त कमांड निष्पादित करें। यह आवश्यक होने पर आपके डोमेन नाम को वर्तमान आईपी पते को बदलने के साथ अद्यतन रखेगा।

4.पोर्ट फॉरवर्डिंग

अपने राउटर के मॉडल को देखें।

b.Go को portforward.com करें

सी। अपने राउटर ब्रांड और मॉडल को अग्रेषित पोर्ट पर विस्तृत गाइड खोजने के लिए।

d। राउटर ब्रांड और मॉडल का चयन करने के बाद, पुनर्निर्देशित पृष्ठ से डिफ़ॉल्ट गाइड पर क्लिक करें।

ई। स्टेटिक आईपी टेक्स्ट बॉक्स में , चरण 1 में दिए गए Pi का स्टेटिक आईपी दर्ज करें।

f। चरणों को आगे बढ़ाएं और 22 पोर्ट को भेजें। स्रोत पोर्ट को 22 होने की आवश्यकता है और गंतव्य पोर्ट कुछ भी हो सकता है। कृपया गंतव्य पोर्ट का उपयोग करना याद रखें जब pi में sshing हो। भ्रम से बचें, मैं उसी स्रोत और गंतव्य का उपयोग करता हूं बंदरगाह।

यदि आप ट्यूटोरियल का पालन कर रहे थे, तो डोमेन नाम के साथ आईपी पते की जगह का उपयोग करके कहीं से भी अपने पीआई में लॉगिन करें। उदाहरण- मैं pi@hometorrent.dnsdynamic.com: 22 का उपयोग अपने पीआई में करता हूं।


बहुत बहुत धन्यवाद! जब मैं एक्सटर पर जाकर वापस आऊंगा तो मैं यह कोशिश करूंगा!
xxmbabanexx

+1 महान उत्तर, हालांकि, क्या आपको वास्तव sudoमें उपयोग करने की आवश्यकता है, क्या /etc/rc.localयह पहले से ही रूट के रूप में नहीं चल रहा है?
हीटफैनजॉन

इस प्रकार पूरी तरह से मेरे Ngrok और बुन विन्यास को खराब कर दिया। अब मैं बिल्कुल नहीं जुड़ सकता!
इगोरगानापोलस्की

2

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

अपने रास्पबेरी पाई से लिंक करने के लिए एक यादगार पोर्ट सेट करें, जैसे कि 23456 या कुछ और। सामान्य पोर्ट संख्याओं को अधिलेखित नहीं करने के लिए सावधान रहें ।

अंत में, ssh का प्रयोग निम्नलिखित करते हैं:

$ ssh -p 23456 user@IP

कहाँ पे:


मैं कस्टम 23456 के बजाय पोर्ट 22 का उपयोग क्यों नहीं कर सकता?
इगोरगानापल्स्की

1
@IgorGanapolsky आप ऐसा कर सकते हैं, लेकिन 1) यदि आपके पास एक और कंप्यूटर है जिसे आप अपने घर के बाहर SSH के माध्यम से कनेक्ट करना चाहते हैं, तो संघर्ष होगा और 2) अधिक जोखिम भरा होगा क्योंकि कई "हैकर्स" पोर्ट 22 के माध्यम से लॉगिन करने की कोशिश करते हैं , इसलिए इसे बंद करने की अक्सर सर्वरों पर सिफारिश की जाती है
10

2

अपने घर नेटवर्क के बाहर से अपने रास्पबेरीपीआई (या यहां तक ​​कि लैपटॉप / सर्वर) तक पहुंचना (मतलब, इंटरनेट से) एक आसान काम नहीं है, क्योंकि आपके घर के लैपटॉप या रास्पबेरीपीआई में केवल स्थानीय आईपी पता है (10.xxx रेंज या 192.168.xx में) रेंज)। इसमें सार्वजनिक IP पता नहीं है जो इंटरनेट से दिखाई देता है।

आपके प्रश्न का सरल उत्तर सॉकेटएक्सपी जैसी मुफ्त ऑनलाइन सेवाओं का उपयोग है जो एसएसएच को होम नेटवर्क के बाहर से आपके रास्पबेरीपी में एक सुरक्षित सार्वजनिक सुरंग समापन बिंदु प्रदान करता है।

सॉकेटएक्सपी बाहरी नेटवर्क से अपने घर रास्पबेरीपी तक पहुंचने के लिए एक सरल, सुरक्षित और आसान तरीका प्रदान करता है। सॉकेटएक्सपी आपको अपने वाईफाई राउटर में किसी भी सेटिंग्स को हैक करने की आवश्यकता नहीं है। यह बॉक्स से बाहर काम करता है। अपने रास्पबेरीपाइप को बाहर से SSH में कैसे सेट करें, यह जानने के लिए , इस ब्लॉग को SocketXP का उपयोग करके अपने RaspberryPi में SSH को दूरस्थ करने के तरीके के बारे में पढ़ें।

SocketXP सेटअप करने के लिए कैसे:

Step1 : निम्नलिखित कमांड का उपयोग करके अपने RaspberryPi पर सॉकेटएक्सपी क्लाइंट स्थापित करें।

$ curl -O https://portal.socketxp.com/download/linux/socketxp && chmod +wx socketxp && sudo mv socketxp /usr/local/bin

Step2: सॉकेटएक्सपी क्लाइंट को निम्न कमांड का उपयोग करके सॉकेटएक्सपी क्लाउड सर्विस से कनेक्ट करें। आपको अपने विशिष्ट ओर्केनिक टोकन प्राप्त करने के लिए https://portal.socketxp.com पर पंजीकरण करना होगा।

$ socketxp -register "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE1NDk1MTg0MDAsImlkIjoiZ2FuZXNodmVscmFqYW5AZ21ha6K208n0.cB2uYevpH4lWIQGQUJdQ0eiEDqS8OiP_YOiqernnui3rjjadfadsfsfas34"

चरण 3 : इंटरनेट से अपने रास्पबेरीपी तक पहुंचने के लिए एक सार्वजनिक सुरंग समापन बिंदु प्राप्त करें।

$ socketxp -connect tcp://localhost:22

Tunnel Access -> tunnel.socketxp.com:35277

Step4 : निम्नलिखित कमांड का उपयोग करके इंटरनेट से अपने रास्पबेरीपी में एसएसएच।

$ ssh raspberry-username@tunnel.socketxp.com -p 35277

जहाँ "रास्पबेरी-यूज़रनेम" वह यूज़रनेम / पासवर्ड है जिसका उपयोग आप अपने रास्पबेरीपीआई में एसएसएच लॉगिन में करते हैं।


1

यह प्रश्न पुराना है, क्योंकि समय बीतने के साथ-साथ आपको सार्वजनिक सुलभ IPv4- पता मिलने की संभावना कम है। सबसे अधिक संभावना है कि आप एक CGNAT के पीछे हैं, जिसका अर्थ है कि आप ISP के अन्य ग्राहकों के साथ एक ही सार्वजनिक IPv4 साझा करते हैं। इसलिए अपने पीआई या किसी और चीज के लिए पोर्ट-फॉरवर्ड करना संभव नहीं है।

यदि आपके पास IPv6 है, तो आप अपने PI को एक स्थैतिक पता दे सकते हैं, और अपने राउटर पर उस तक पहुंच की अनुमति दे सकते हैं। कई मोबाइल प्रदाता अब फोन को IPv6 देते हैं। पुराने "भूमि-आधारित" आईएसपी (फाइबर, डीएसएल, कोआक्स आदि) अक्सर अपने पैरों को खींच रहे हैं।

आप क्लाउड में कहीं सार्वजनिक IPv4 के साथ एक सस्ता VPS (वर्चुअल प्राइवेट सर्वर) भी प्राप्त कर सकते हैं, और PI से VPS तक SSH-सुरंग बना सकते हैं।


0

पटल के जवाब के शीर्ष पर, आपको डायनेमिक डीएनएस सेवाओं में से एक की जांच करनी चाहिए, जैसे कि कोई आईपी । वे आपके DSL या केबल प्रदाता द्वारा आपको डिस्कनेक्ट करने के कारण, एक स्थिर होस्ट नाम के तहत आपको अपने होम नेटवर्क को एक्सेस करने की अनुमति देते हैं, हालांकि आपका आईपी पता दैनिक बदल सकता है। उनके पास एक अच्छा आरंभ करने वाला पृष्ठ भी है, जो आपको अपने राउटर को तदनुसार स्थापित करने के लिए परिचय देता है।

आप inadynअपने रासबेरी पाई पर पैकेज को स्थापित करना चाह सकते हैं , जब आईपी नहीं बदलता है तो अपनी नो-आईपी डीएनएस प्रविष्टियों को अपडेट करने के लिए। आप इसे चलाकर कर सकते हैं:

sudo apt-get install inadyn

Inadyn README से मैंने यह नमूना लिया:

inadyn --dyndns_system default@no-ip.com -u USER-p PASS -a HOST

उम्मीद है की यह मदद करेगा।


No-Ip में एक DUC (डायनेमिक अपडेट क्लाइंट) है, जो यह सुनिश्चित करेगा कि आपका IP Addr नहीं बदले।
इगोरगानापोलस्की 15

0

इरविन के जवाब को अतिरिक्त करने के लिए:

चरण 1:

यदि आप wlan से कनेक्ट करते हैं, तो उपयोग करें:

iface wlan0 inet static
wpa-ssid "xxx" #<=your ssid
wpa-psk "yyy"  #<=your pw
address 192.168.1.xxx #<=preferred static ip (xxx<255)
netmask 255.255.255.0
gateway 192.168.1.1 #<=router's ip

चरण 2:

उपरोक्त परिवर्तन करने के बाद, आपको पुनः आरंभ करने की आवश्यकता है networking:

sudo /etc/init.d/networking restart

मैंने स्टैटिक ब्लॉक के सामने 2 लाइनें भी जोड़ीं, ऑटो wlan0 allow-hotplug wlan0 मैंने इसे इस पोस्ट में पाया। raspberrypi.stackexchange.com/a/10320/10148 मैंने भी इनके बिना इसे करने की कोशिश की - कुछ काम नहीं किया।
XandruCea

इस जवाब को रास्पियन के नेटवर्क कॉन्फ़िगरेशन और इनिट सिस्टम में बदलाव के कारण पुराना माना जाना चाहिए।
गोल्डीलॉक्स

0

व्यसन में, कुछ राउटर में कुछ डायनेमिक DNS सेवाओं के लिए अंतर्निहित समर्थन होता है, आप अपने पीआई पर क्लाइंट को स्थापित करने से बचने के लिए अपने राउटर में इस विकल्प को सक्षम कर सकते हैं (यदि यह मौजूद है) और (अपने समय में थोड़ा ओवरहेड को बचाने के लिए)।


0

तो, आपके पास फ़ायरवॉल (आपके राउटर) के पीछे एक ssh सर्वर (आपका रास्पबेरी PI) है और आप इसे कहीं से भी कनेक्ट करना चाहते हैं। मान लें कि आपका ssh सर्वर ठीक तरह से सेटअप है, यानी आपके रास्पबेरी पर 'ssh यूज़र @ लोकलहोस्ट डेट' चलाने से वर्तमान तिथि या समय का पता चलता है।

आपको दो समस्याओं को हल करना होगा:

  • आपके राऊटर को आपके रास्पबेरी ssh पोर्ट (आमतौर पर 22) पर एक निश्चित पोर्ट को अग्रेषित करना चाहिए।
  • आपको अपने राउटर को सार्वजनिक आईपी पता होना चाहिए (जो आमतौर पर राउटर को फिर से कनेक्ट करता है और 24 घंटों में एक बार)।

पोर्ट अग्रेषण और DynDNS

समाधान मौजूद हैं (जैसा कि अन्य लोगों द्वारा बताया गया है):

  • आपके राउटर पर एक पोर्ट अग्रेषण खोलना प्रत्येक राउटर के लिए विशिष्ट है और आमतौर पर राउटर सेटिंग्स वेबसाइट पर किया जाता है।
  • वर्तमान आईपी का निर्धारण करना बाहरी वेबसाइट ( https://www.google.com/search?q=whats+my+ip ) द्वारा सबसे आसान है । यदि आपका आईपी नियमित रूप से बदलता है, तो आप एक डायनामिक डीएनएस प्रविष्टि ( https://www.noip.com/ , https://dyn.com/dns/ , आदि) प्राप्त कर सकते हैं ।

यदि सही तरीके से सेटअप हो, तो आपके रैस्पैरी पी को जोड़ना संभव हो सकता है:

ssh username@[yourIP] -p [port] 
# or using dyndns 
ssh username@myname.dyndns.org -p [port]

Sshhub.de का उपयोग करना

एक और बहुत ही सुविधाजनक समाधान, जिसका उल्लेख अब तक नहीं किया गया है, वह है एसएसहब (डिस्क्लेमर, मैं लेखक हूं)। यह कहीं से भी अपने Rasperry PI का उपयोग करने के लिए ssh के अपने अग्रेषण का उपयोग करता है। इसकी विश्वसनीय, स्वतंत्र और सेटअप के लिए बहुत सरल है । एक बार पंजीकरण करें:

ssh info@sshhub.de register

अपने रास्पबेरी पीआई पर चलाएं:

while true; do ssh [username]@sshhub.de -R 22:localhost:22 -N -o ServerAliveInterval=10; sleep 10; done

...और बस! आप अपने रास्पबेरी पाई को कहीं से भी कनेक्ट कर सकते हैं:

ssh -J [username]@sshhub.de localhost

नमस्कार और रास्पबेरी पाई में आपका स्वागत है! कृपया ले दौरे और यात्रा के सहायता केंद्र कैसे चीजें यहाँ काम को देखने के लिए। आपके योगदान के लिए धन्यवाद, लेकिन कृपया ध्यान दें कि हम आपसे अपने उत्तरों में अपनी संबद्धता का खुलासा करने के लिए कहते हैं । (मुझे लगता है कि आप सिफारिश की सॉफ्टवेयर के लेखक हैं।)
Ghanima

मुझे सही दिशा बताने के लिए धन्यवाद। मैं लेखक हूं। मैं निश्चित रूप से समाधान खोजने वाले लोगों के लिए अपने उत्तर के साथ मूल्य प्रदान करना चाहता हूं। और मुझे आशा है कि मेरे साथ ही शशूब भी है।
ओलिवर

0

आप अपने पीआई तक आने वाली पहुंच को सक्षम करने के लिए वीपीएन का उपयोग कर सकते हैं। OpenVPN एक समाधान है, जिसके लिए आपको एक कंप्यूटर की आवश्यकता होगी जो इंटरनेट (एक आने वाले पोर्ट) से सुलभ हो। हालाँकि, जब तक आपके पास एक कंप्यूटर पहुँच योग्य है, तब तक अन्य कंप्यूटरों को होने की आवश्यकता नहीं है क्योंकि वे OpenVPN सर्वर के ग्राहक हो सकते हैं।

एक अन्य विकल्प ZeroTier जैसी सेवा का उपयोग करना होगा, जो वीपीएन बनाने के लिए केंद्रीयकृत सर्वर प्रदान करता है, इसलिए आपको अपना स्वयं का सर्वर चलाने की आवश्यकता नहीं होगी। यह भी मुफ्त है।


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