स्थानीय नेटवर्क पर मशीनों के लिए SSH का सबसे अच्छा तरीका क्या है?


61

मेरे पास 2 कंप्यूटर हैं, एक जो मैं उपयोग करता हूं और एक बच्चों के लिए। मैं इसे नियंत्रित करने के लिए (जैसे इसे बंद करने के लिए) उनके कंप्यूटर में ssh करने में सक्षम होना चाहता हूं, लेकिन ऐसा करने का सबसे अच्छा तरीका उत्सुक हूं। हम दोनों एक ही घर में हैं और एक ही इंटरनेट कनेक्शन साझा करते हैं।

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

जवाबों:


58

Daud:

avahi-browse -tl _workstation._tcp

स्थानीय नेटवर्क में उबंटू वर्कस्टेशन की एक सूची प्राप्त करने के लिए, फिर आप उन्हें चलाकर कनेक्ट कर सकते हैं:

ssh <username>@<computer-name>.local

7
नोट: के लिए avahi-browse, आपको avahi-utilsपैकेज स्थापित करना होगा (जो कि इसमें भी खींच जाएगा avahi-daemon।।
पिस्कवर

2
@Piskvor अच्छा बिंदु। यह पैकेज पहले से ही उबंटू डेस्कटॉप में डिफ़ॉल्ट रूप से स्थापित है, लेकिन मैं अन्य फ्लेवर (कुबंटु, लुबंटू, आदि) के बारे में नहीं जानता। यदि यह स्थापित नहीं है तो बस चलाएं sudo apt-get install avahi-utils
एरिक कार्वाल्हो

तो यह एक ssh सर्वर सेटअप करने के लिए आवश्यक होगा या उदाहरण के लिए डिफ़ॉल्ट रूप से ubuntu 14.04 चलाएगा?
tobi

1
@tobi SSH सर्वर डिफ़ॉल्ट रूप से संस्थापित नहीं होता है। आपको इसे स्थापित करना होगा।
एरिक कारवाल्हो

2
मेरे दौड़ने के बाद सूची खाली लगती है avahi। दोनों कंप्यूटर एक ही राउटर से जुड़े हैं
जोस ऑस्पिना

15

आप बच्चे के कंप्यूटर में ssh करने के लिए IP पते का उपयोग कर सकते हैं। यदि आप कंप्यूटर नाम का उपयोग करना चाहते हैं, तो कंप्यूटर का नाम शामिल करने के लिए अपनी / etc / मेजबान फ़ाइल को संपादित करें।

192.168.1.104  dad
192.168.1.105  kids

12
आपको यह इंगित करने की आवश्यकता है कि आईपी को कंप्यूटर को सांख्यिकीय रूप से सौंपा जाना चाहिए।
अला अली

3
sshमेजबानों का नामकरण मेजबानों को संपादित किए बिना आप नाम से सक्षम कर सकते हैं ~/.ssh/config: Howtogeek.com/75007/…
नाथन लॉन्ग

@ नथनलॉन्ग - अच्छा टिप! हालाँकि कोई भी इसे होस्ट फ़ाइल में रखने का तर्क दे सकता है, जिससे किसी भी सेवा (यदि वह वांछित है) तक पहुँच प्राप्त कर सकता है।
स्टेफगॉसलिन

9

Ssh करने से पहले ssh क्लाइंट और सर्वर के लिए जाँच करें। यदि आपके पास ये सेवा स्थापित नहीं है

 sudo apt-get install openssh-client

 sudo apt-get install openssh-server

यदि आप पहले ही कर चुके हैं

 ssh username@ipaddress

 Enter connecting device login password.

उदाहरण :

 ssh prem@192.168.1.145

 prem@192.168.1.145's password:********

यदि आपको कोई त्रुटि मिली है जैसे: "अनुमति से इनकार किया गया है, तो कृपया पुनः प्रयास करें।"

कृपया उपयोगकर्ता नाम और आईपी के लिए दो बार जांचें।


8

मैं फ़ाइल का उपयोग करता हूं ~ / .sh / config जो ssh को स्वचालित रूप से पार्स करता है, यहाँ एक उदाहरण है:

Host *
ControlMaster auto
ControlPath /tmp/%r@%h:%p

KeepAlive yes 
ServerAliveInterval 60
ServerAliveCountMax 10
ControlPersist 1h

Host server1
        User user1
        HostName server1-web.example.org

Host server2
        User user2
        HostName server2-db.example.org
        Compression yes
        IdentityFile /home/user/.ssh/different_key.pem

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


फिर एक एक घर इंटरनेट गेटवे उपकरण संबद्ध करने के लिए के DNS सुविधा कैसे कॉन्फ़िगर करता है server1-web.example.orgऔर server2-db.example.orgसंबंधित सर्वर के साथ?
दामियन येरिक

5
  1. आप सीधे एक स्थानीय आईपी को भेज सकते हैं बशर्ते कि आपका लैन स्थिर आईपी का उपयोग करता है, उदाहरण के लिए
    ssh someuser@192.168.1.2

  2. आप दोनों कंप्यूटरों में मेजबानों की फाइल को संपादित कर सकते हैं, जैसा कि उनके उत्तर में एड मानेट ने उल्लेख किया है । इस तरह आप तब कंप्यूटर के होस्टनाम का उपयोग कर सकते हैं, अर्थातssh someuser@some_hostname

  3. आप अपने LAN के होस्ट को हल करने के लिए एक स्थानीय DNS सर्वर सेटअप कर सकते हैं। इस तरह से आप विकल्प 2 के रूप में कंप्यूटर के होस्टनाम का उपयोग करने में सक्षम होंगे, लेकिन अतिरिक्त लाभ के साथ हर मेजबानों की फाइल को एडिट करने से बचना होगा, अपने DNS सर्वर को उबंटू की नेटवर्क सेटिंग्स में इंगित करके।

DNSMasq सेटअप करने में आसान DNS सर्वर बहुत अच्छा है।
एक अन्य विकल्प BIND है


3

स्थानीय LAN IP पते का उपयोग करें। वैकल्पिक दृष्टिकोण को इंटरनेट पर खुले रहने के लिए कुछ पोर्ट की आवश्यकता होती है, ताकि आप लॉगिन कर सकें।

इसके अलावा, आपको पोर्ट मैपिंग (राउटर पर) की आवश्यकता होगी। लक्ष्य के रूप में (राउटर पर) अपने 'सार्वजनिक' आईपी पते का उपयोग करना आपके दोनों पीसी में से किसी से भी नहीं जुड़ेगा।


सबसे सरल तरीका राउटर पर प्रत्येक आईपी पते (आपके 2 कंप्यूटरों के लिए) को स्थायी रूप से असाइन करना है। फिर बस उस आईपी पते से कनेक्ट करें।

यदि आप चतुर (बाद में) प्राप्त करना चाहते हैं, तो एक सर्वर सेट करें और प्रत्येक डिवाइस को सार्थक नाम निर्दिष्ट करने के लिए स्थानीय DNS सेवा का उपयोग करना शुरू करें। वास्तव में केवल 2 पीसी के लिए परेशानी के लायक नहीं है।


1
नोट: आजकल कई सभ्य होम रूटर्स आईपी एड्रेस असाइनमेंट के दौरान वर्कस्टेशन के होस्टनाम पढ़ेंगे, और इसे स्थानीय डीएनएस के लिए हल करेंगे। काश, यह अभी तक एक सार्वभौमिक विशेषता नहीं है।
पिस्कवॉर

2

यदि आप एक ही इंटरनेट कनेक्शन साझा कर रहे हैं तो आप एक ही वाईफाई राउटर के पीछे सबसे अधिक संभावना है। तो आप सीधे अपने बच्चों के कंप्यूटर से जुड़ते हैं:

ssh <IP-address>

या:

ssh <user-name>@<IP-address>

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

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


मैंने आपके सुझाव की कोशिश की है, लेकिन एक त्रुटि मिली है: ssh: connect to host xxx.xxx.x.xx port 22: connection refused- क्या कोई अतिरिक्त विन्यास परिशिष्ट है?
lukaszkups 10:22

उस मशीन पर ssh सर्वर चल रहा है और कोई फ़ायरवॉल इसे और आगे नहीं रोक रहा है। यह हो सकता है कि ssh को किसी अन्य पोर्ट पर कनेक्शन की अपेक्षा करने के लिए कॉन्फ़िगर किया गया है जिस स्थिति में उपयोगकर्ता -p ध्वज को डिफ़ॉल्ट पोर्ट (22) की तुलना में कुछ और उपयोग करना संभव है।
तानेल मेई

0

आप होस्टनाम के स्थान पर आईपी पते का उपयोग कर सकते हैं या अपनी /etc/hostsफ़ाइल में एक कस्टम होस्ट नाम निर्दिष्ट कर सकते हैं।

बच्चे के कंप्यूटर पर आईपी प्राप्त करने के लिए: नेटवर्क मेनू पर "कनेक्शन सूचना" देखें याifconfig कमांडलाइन पर चलाएं (इन्हें बच्चे के कंप्यूटर पर किया जाना है)।

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


0

आप बस अपने बच्चे की मशीन को असाइन कंप्यूट नाम दे सकते हैं।
तो बस करो,
ssh MachineName

मैंने कभी इसका इस्तेमाल नहीं किया, बस मेरे दिमाग में एक विचार आया जिसे मैंने साझा किया।

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