बाहरी रूप से एसएसएच के माध्यम से उबंटू सर्वर से कनेक्ट करना


25

मैंने हाल ही में Ubuntu सर्वर 12.04 (सटीक पैंगोलिन) स्थापित किया है और इसे मुख्य रूप से एक फ़ाइल सर्वर के रूप में उपयोग करने का इरादा है। मैं लिनक्स के लिए पूरी तरह से नया हूं, इसलिए यह एक बहुत बड़ी सीखने की अवस्था है। कल मैं SSH कुंजी जोड़ी का उपयोग करके अपने विंडोज 7 मशीन पर PuTTY को कॉन्फ़िगर करने में सक्षम था ताकि मैं अपने डेस्कटॉप से ​​उबंटू सर्वर को प्रशासित कर सकूं। यह ठीक काम करता है बशर्ते कि दोनों मशीनें एक ही नेटवर्क पर हों।

मेरे लैपटॉप ( मैकबुक एयर ) के मामले में यह हमेशा एक ही नेटवर्क पर नहीं हो सकता है। क्या एसएसएच के माध्यम से मेरे लैपटॉप से ​​उबंटू सर्वर से कनेक्ट करना संभव है, जब यह एक अलग नेटवर्क पर है?

मैंने अवहि डेमन को स्थापित किया है ताकि सर्वर के लिए होस्टनाम लैन पर प्रसारित हो और राउटर को कॉन्फ़िगर किया जाए ताकि यह हमेशा सर्वर को एक ही आईपी पता प्रदान करे। इसके अलावा सर्वर पर मेरे द्वारा स्थापित एकमात्र चीज़ OpenSSH है जहाँ मेरे पास पासवर्ड प्रमाणीकरण अक्षम है ताकि आप केवल एक कुंजी जोड़ी का उपयोग करके कनेक्ट कर सकें।

मुझे लगा कि मैं अपने लैपटॉप पर टर्मिनल से कुछ ऐसा कर पाऊंगा:

ssh my.external.ip.address user@hostname.local

जब मैं उस कमांड को आज़माता हूँ तो मुझे त्रुटि मिलती है:

ssh: my.external.ip.address पोर्ट 22 को होस्ट करने के लिए कनेक्ट करें: ऑपरेशन टाइम आउट

मैंने भी कोशिश की है

ssh my.external.ip.address user@servers.local.ip.address

और मुझे पहले जैसा ही त्रुटि संदेश मिलता है। ताकि आपको यह पता चल जाए कि मैं क्या करने की कोशिश कर रहा हूं, लेकिन क्या यह संभव है, और अगर यह है, तो मैं इसे कैसे करूं?

यह मानते हुए कि मैं अपने लैपटॉप से ​​ssh के माध्यम से एक बाहरी संबंध स्थापित कर सकता हूं, इस बात की संभावना है कि मेरा ISP मेरे बाहरी IP पते को बदल देगा जो बाहरी कनेक्शन को तोड़ देगा। मैं मजबूती से जुड़ना चाहूंगा, यानी यदि मेरा आईएसपी बाहरी आईपी पते को बदल देता है तो मैं अभी भी सर्वर से दूरस्थ रूप से जुड़ सकता हूं, बिना यह जाने कि नया बाहरी आईपी पता क्या है।

जवाबों:


23

सबसे पहले, सही कमांड है: ssh user@my.external.ip.address

और राउटर को आपके सर्वर के स्थानीय आईपी पते पर एसएसएच पोर्ट 22 को अग्रेषित करने के लिए कॉन्फ़िगर किया जाना चाहिए।

आगे डिबगिंग के लिए:

1) जांचें कि पोर्ट 22 (एसएसएच) आपके सर्वर पर और राउटर (पोर्ट अग्रेषण) पर खुला है।

2) जांचें कि एसएसएच सर्वर आपके सर्वर पर चल रहा है

3) का उपयोग करें ping, ssh -vकनेक्ट करते समय और /var/log/auth.logकिसी भी अन्य कनेक्शन समस्याओं को डीबग करने के लिए देखें।

1) अपने राउटर पर: राउटर विशिष्ट निर्देशों का पालन करें

अपने सर्वर पर: sudo ufw status(जब तक आप किसी अन्य फ़ायरवॉल कॉन्फ़िगरेशन उपयोगिता का उपयोग नहीं करते हैं) या sudo iptables -L(सामान्य विधि, लेकिन जटिल आउटपुट)

पोर्ट 22 खोलने के लिए: sudo ufw allow 22

cf https://help.ubuntu.com/12.04/serverguide/firewall.html

2) यह स्थापित है की जाँच करें: dpkg -l openssh-server

यह चल रहा है की जाँच करें: service ssh statusयाps aux | grep sshd

3) कनेक्टिंग क्लाइंट पर:

  • ping my.external.ip.address
  • ssh -v user@my.external.ip.address

सर्वर पर:

  • sudo less /var/log/auth.log

यदि आवश्यक हो तो आप राउटर लॉग की जांच कर सकते हैं।

यहां एक ऑनलाइन पोर्ट स्कैनर है: https://www.grc.com/x/ne.dll?bh0bkyd2

मुझे लगता है कि आप नैप या अन्य जैसे टूल का उपयोग कर सकते हैं , लेकिन मैं अभी तक उनसे परिचित नहीं हूं।

एक बदलते बाहरी आईपी पते से निपटना:

1) एक dynDNS या समान खाता प्राप्त करें: http://dyn.com/dns/

गतिशील DNS प्रदाताओं की सूची:

2) एक और उपाय है, एक कॉन्टैब जॉब सेट करना, जो नियमित रूप से आपके बाहरी आईपी पते को मेल करता है या ड्रॉपबॉक्स जैसी ऑनलाइन स्टोरेज सर्विस में डालता है।

यहाँ एक स्क्रिप्ट मेरे एक मित्र का उपयोग करती है:

    #!/bin/bash
    # Bash script to get the external IP address
    MYWANIP=$(curl http://mire.ipadsl.net | sed -nr -e 's|^.*<span class="ip">([0-9.]+)</span>.*$|\1| p')
    echo "My IP address is: $MYWANIP"

    IPold=$(cat /home/USER/Dropbox/test.txt)
    echo "Previous IP Address: $IPold"

    if [[ $IPold != $MYWANIP ]] ;
    then
      echo "New IP"
      rm /home/USER/Dropbox/test.txt
      echo $MYWANIP >> /home/USER/Dropbox/test.txt;
      echo $MYWANIP;
    else
      echo "Same IP";
    fi

    # example crontab entry:
    ## m h  dom mon dow   command
    ## */10 * * * * /home/USER/Dropbox/test_ip.sh

रूटर पोर्ट अग्रेषण:

1) सबसे पहले, अपने राउटर का स्थानीय IP पता चलाकर पता करें:

ip route | grep default

यह आमतौर पर 192.168.xx जैसा कुछ है

वैकल्पिक तरीके और अन्य ओएस समाधान:

2) राउटर के लिए स्थानीय रूप से जुड़े किसी भी कंप्यूटर का उपयोग करना, उदाहरण के लिए , http://192.168.1.1 के माध्यम से पहले पाए गए आईपी का उपयोग करें । यह राउटर कॉन्फ़िगरेशन इंटरफ़ेस को लाना चाहिए।

3) अगले चरण आपके राउटर के आधार पर भिन्न होते हैं। यहाँ यह उदाहरण के लिए OpenWRT के साथ एक राउटर पर कैसे किया जाता है:

https://newspaint.wordpress.com/2012/08/26/how-to-add-a-port-forward-using-the-web-interface-on-openwrt-10-03-1/


इसके लिए धन्यवाद, मैं अब सुझावों के माध्यम से चलाऊंगा।
असीर

ठीक है, मुझे सर्वर पर अपने राउटर पर पोर्ट 22 को आगे करना था और यह काम करता है, बहुत बहुत धन्यवाद। क्या इस तरह से मैं अपने प्रश्न के दूसरे भाग को इस तथ्य से हल कर सकता हूं कि मेरा बाहरी आईपी पता बदल सकता है? - अभी अपना एडिट देखा है, अभी पढ़ेंगे।
एसेर

क्या आप बता सकते हैं कि मैं अपने राउटर पर पोर्ट 22 को सर्वर पर कैसे फॉरवर्ड कर सकता हूं? इसका क्या मतलब है? धन्यवाद!
xxx222

यह इस बात पर निर्भर करता है कि आपके पास कौन सा राउटर है, लेकिन आमतौर पर कहीं न कहीं पोर्ट फॉरवर्डिंग या फायरवाल सेटिंग पेज होना चाहिए। यहां यह बताया गया है कि OpenWRT के साथ राउटर पर यह कैसे किया जाता है : IPSaint.wordpress.com/2012/08/26/… अधिकांश राउटर को 192.168.1.1 या आपके ब्राउज़र से इसी तरह के 192.168.xx पते पर जाकर कॉन्फ़िगर किया जा सकता है। राउटर के समान नेटवर्क।
KIAaze

3

डिफ़ॉल्ट रूप से उबंटू (डेस्कटॉप) में एसएसएच स्थापित नहीं है।

आप इसे टर्मिनल में निम्नलिखित कमांड द्वारा स्थापित कर सकते हैं:

sudo apt-get install openssh-server

इसे तुरंत स्थापित करना चाहिए और सेवा शुरू करनी चाहिए।


2
+1। जब मैंने इसे आज़माया तो यह बहुत काम आया। मैं उस कमांड ( Ubuntu 14.04 (भरोसेमंद तहर), 64-बिट डेस्कटॉप डेस्कटॉप के लिए) को चलाने के बाद उबंटू मशीन को सही करने में सक्षम था ।
पीटर मोर्टेंसन
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.