मैं इसे कैसे सेट कर सकता हूं ताकि मैं अपने VMWare अतिथि VM में SSH कर सकूं?


16

किसी कारण के लिए, इंटरनेट पर इस प्रक्रिया पर प्रलेखन काफी कमी या पुराना है। असल में, मेरे पास VMWare फ्यूजन (उबंटू 10.10 रनिंग) में एक अतिथि VMWare वर्चुअल मशीन है, और मेरे पास होस्ट के रूप में मैक OSX 10.6 है। मैं मैक से लिनक्स वीएम में एसएसएच करने में सक्षम होना चाहता हूं। मैं चीजों को कैसे कॉन्फ़िगर कर सकता हूं ताकि यह संभव है?


संबंधित: superuser.com/questions/729712/… कम से कम विंडोज पर, आप बस VMWare द्वारा स्वचालित रूप से स्थापित आईपी के लिए ssh कर सकते हैं।
बेन

जवाबों:


13

बिल्कुल - यह केवल एक स्थानीय केवल, या ब्रिजित इंटरफ़ेस का उपयोग करने का मामला है, और सिस्टम का आईपी पता काम कर रहा है जो ssh सर्वर (ifconfig कमांड का उपयोग करके) चलाता है। VM पर ओपनश-सर्वर स्थापित करें, अपने ssh क्लाइंट का उपयोग करें, और उसके किए।

यदि आप NAT इंटरफ़ेस का उपयोग कर रहे हैं, तो यह अधिक जटिल हो सकता है, और इसकी आम तौर पर अनुशंसा नहीं की जाती है।


1
जो लोग नहीं जानते हैं, के लिए ssh सर्वर का उपयोग शुरू करना न भूलें service sshd startया यदि आप इसे बूटअप रन पर शुरू करना चाहते हैंchkconfig sshd on
एंथनी हट्ज़ोपोलोस

21

वास्तव में, आपके VMs के साथ bridged इंटरफ़ेस के बजाय NAT का उपयोग करने के लिए अच्छे कारणों की एक पूरी गुच्छा है .. (यह एक पुराना सवाल है, लेकिन यह मेरा पहला परिणाम के रूप में सामने आया कि यह कैसे करना है, वर्चुअलबॉक्स से माइग्रेट करना जहां मैं करता हूं यह हर समय, इसलिए मैंने इसे जोड़ने के लायक समझा)

NAT का उपयोग करने के बस कुछ कारण हैं:

  • यह आसान और पोर्टेबल है
  • यदि आप एक ग्राहक लैन पर हैं जिसे एक आईपी प्राप्त करने के लिए एक ज्ञात मैक पते की आवश्यकता होती है (अन्यथा आपको अप्रयुक्त लोगों पर अनुमान लगाने और संघर्ष को जोखिम में डालने की कोशिश करनी होगी, और आम तौर पर अपने आप पर ध्यान आकर्षित करना होगा :)),
  • अपने होस्ट पर अपने वीएम को एक एकल प्रॉक्सी सर्वर का उपयोग करने की अनुमति देने जैसी चीजें (IE यदि आप उस नेटवर्क को नियंत्रित नहीं करते हैं जो आपके पास हैं), या एक में बाहर जाने पर अपने प्रसारण (विंडोज़ आदि) ट्रैफ़िक को फ़ायरवॉल / फ़िल्टर करने में सक्षम हैं। सुविधाजनक स्थान।
  • उन्हें एक निश्चित या आरक्षित आईपी आवंटित करने में सक्षम होने के कारण आप उन्हें होस्ट के बाहर से नाम / आईपी द्वारा संदर्भित कर सकते हैं (फिर, यदि आप नेटवर्क पर इंटरफ़ेस के साथ आरक्षण नहीं प्राप्त कर सकते हैं)
  • लेकिन इन सबसे, यह आपको अपने होस्ट पर एक एकल फ़ायरवॉल कॉन्फिगर करने के पीछे छुपाने की अनुमति देता है, और हर वीएम को "वाइल्ड" को उजागर करने और व्यक्तिगत रूप से उन सभी की सुरक्षा करने आदि के बजाय आपके / उनके बीच चीजों को अधिक संरक्षित तरीके से साझा करता है। .. जैसे आप इंटरनेट मॉडेम / राउटर से करते हैं

वैसे भी, मेरे मामले के लिए (VMWare वर्कस्टेशन 10, लिनक्स होस्ट, ओएस एक्स गेस्ट), और जो कोई भी इस पर ठोकर खाता है, यह मेरे लिए काम करने का सिंहावलोकन है। वफ़लिंग और व्हाट्स-आइफ़ के अलावा, वास्तव में केवल 3 मुख्य चरण हैं।

  • तो, पहले आपको यह तय करने की आवश्यकता है कि आप अपने वीएम / गेस्ट को अपने होस्ट के "बाहर" से क्या अनुमति देना चाहते हैं (नीचे के रूप में नोट करें, आप इसे होस्ट से आसानी से प्राप्त कर पाएंगे)। एक सुरक्षित शर्त केवल आपके सबनेट पर मशीनों को केवल SSH (पोर्ट 22) को उजागर / अनुमति देना होगा। यदि आप वीएम, आदि पर एक वेबसर्वर रखते थे, तो आप पोर्ट 80/443 की भी अनुमति दे सकते हैं, और आप एसएसएच का उपयोग करके अन्य सेवाओं तक पहुंचने के लिए "सुरंग" का भी उपयोग कर सकते हैं (नीचे उदाहरण देंगे), और अपने मेजबान को देने के लिए FUSE / SSHFS का उपयोग करें फ़ाइल सिस्टम एक्सेस .. (या VMWare पर साझा फ़ोल्डर सुविधा, लेकिन मैंने अभी तक इसका उपयोग नहीं किया है)।

तो विचार कुछ इस प्रकार है: "होस्ट पर 22222 पोर्ट से कनेक्ट करने के लिए मेरे होस्ट के स्थानीय नेटवर्क (जैसे 10.1.1.0/24, या 192.168.1.0/24) पर चीजों को अनुमति दें, जिसे हम 22 के पोर्ट के साथ आगे भेजेंगे विशिष्ट अतिथि ”। यह निश्चित रूप से एक विशिष्ट अतिथि होना है (यह आपके आईपी को सभी अधिक उपयोगी कॉन्फ़िगर करने में सक्षम बनाता है, और आप उन सभी को एक वीएम को खोलने के बिना एक ही स्थान पर बदल सकते हैं), जैसे गेमिंग चीजों की अनुमति देने के लिए अपने इंटरनेट राउटर के माध्यम से करना। के माध्यम से आदि।

  • इसके बाद, निर्णय लिया गया कि आपको किन सेवाओं की आवश्यकता होगी

    • अपने मेजबान मशीन पर iptables / फ़ायरवॉल के माध्यम से "बाहरी" पोर्ट पर कनेक्शन की अनुमति दें। पोर्ट 22 संभवतः पहले से ही sshd द्वारा होस्ट पर उपयोग किया जाएगा, इसलिए आप 22222 जैसे कुछ का उपयोग कर सकते हैं। इस मामले में, /etc/ufw/before.rules (और पुनरारंभ ufw) में कुछ इस तरह जोड़ें

      # आपका स्थानीय नेटवर्क / सबनेट मास्क 10.1.1.0/24 की तरह हो सकता है ...

      -एक ufw-इससे पहले इनपुट -p tcp --dport 22222 -m राज्य --state NEW -s my_subnet_and_mask -j ACCEPT `

    • अपने VM (s) को मुख्य VMware DHCP कॉन्फिगर में एक आरक्षित IP दें ( वैकल्पिक, लेकिन अगर आप होस्ट से इसे "पिनहोल" करना चाहते हैं, तो इस पर भरोसा करना आसान है ) / etc / vmware / के नीचे कुछ इस तरह से जोड़कर vmnet8 / dhcpd / dhcpd.conf

      # Just like a normal dhcpd reservation
      host my_vm_1 {
           hardware ethernet *your_vm_eth_mac_here**;
           # This is in default range for guests, but outside the 'pool'.
           # - check that it matches your vmware config
           fixed-address 192.168.198.10; 
           # And/or your own internal nameserver etc
           option domain-name-servers 8.8.8.8;
           option domain-name "some_domain_suffix";
           # This is the default default-route of the VM
           option routers 192.168.198.2; 
      }
      
    • VMWare को 22222 से गेस्ट के फॉरवर्ड कनेक्शनों में बताएं: 22 को /etc/vmware/vmnet8/nat/nat.conf के [इनकमिंगप] सेक्शन में जोड़कर, फिर vmware सर्विस (एस) नीचे देखें (नोट देखें)

      [Incomingtcp]

      22222 = 192.168.198.10:22

    • आपको अपने अतिथि में पोर्ट 22 कनेक्शन की अनुमति देने की आवश्यकता हो सकती है , यह इस बात पर निर्भर करता है कि यह क्या है / यदि इसका स्वयं का फ़ायरवॉल है। इस OS X अतिथि मामले में, इसे साझाकरण सेटिंग्स के माध्यम से "रिमोट लॉगिन" को सक्षम करना था, लिनक्स पर यह ufw के माध्यम से हो सकता है जैसा कि ऊपर मेजबान, आदि।

इसलिए, एक बार जब यह सब हो जाता है, तो आप अपने लैपटॉप या लैन पर अन्य मशीन पर हो सकते हैं, 22222 को अपने कार्य केंद्र (vmware होस्ट) पर ssh, और आप उस अतिथि को दूर कर देंगे जिसे आपने इसे आगे भेजने के लिए कहा था। जैसा कि ऊपर कहा गया है, अगर आप यह भी कहते हैं कि अतिथि (या vnc सर्वर, जो अक्सर अनएन्क्रिप्टेड होता है) पर पोस्टग्रेज सर्वर से कनेक्ट करने में सक्षम होना चाहते हैं, तो आप उसी कमांड में सुरंग बना सकते हैं (इसके बजाय इसे dhp conf में भी जोड़ सकते हैं)। उदाहरण के लिए

console ~> ssh root@hostip -p 22222 -L 54320:localhost:5432

और आप vmware में आगे आईपी के माध्यम से अतिथि को ssh'ed करेंगे, और अपने pgadmin3 टूल को स्थानीयहोस्ट पर इंगित कर सकते हैं: अपने लैपटॉप पर 54320 (नॉन-प्रिवेल्ड), और नेटवर्क पर आपका ट्रैफ़िक एन्क्रिप्ट किया जाएगा। (नोट 'लोकलहोस्ट' पहले से ही गेस्ट के पास भेजा गया है)

टिप्पणियाँ

  • ऐसा करने के लिए सभी तरह के तरीके हैं .. एक के लिए, आप केवल -L में मेहमान के आईपी को होस्ट करने और निर्दिष्ट करने के लिए सुरंग बना सकते हैं और यह "ब्रेक आउट" करेगा और आपको वहां इंगित करेगा, लेकिन nat.conf विकल्प अच्छा है और सुविधाजनक है, और आपको इसे हर बार टाइप नहीं करना है। पोर्ट फ़ॉरवर्डिंग के अन्य तरीके भी हैं
  • मैंने ऐसा करने के लिए वर्चुअल नेटवर्क gui के थ्रेड के एक जोड़े पर संदर्भ देखा था (जैसे virtualbox है), लेकिन मैं इसे इस संस्करण में नहीं ढूंढ सका
  • मैं विंडोज़ का उपयोग नहीं करता, इसलिए भले ही मुझे लगता है कि यह मेजबान के रूप में कॉन्फ़िगर करने के लिए बहुत समान होगा, मुझे यकीन नहीं है। NAT कॉन्फ़िगरेशन किसी भी vmware अतिथि के लिए काम करना चाहिए (हालांकि मैंने VMWare के किसी भी अन्य संस्करण का उपयोग नहीं किया है)
  • VMware एक मार्ग सेट करता है ताकि मेजबान NAT अतिथि से सीधे संपर्क कर सके, IE मेजबान के कंसोल से, मैं NAT अतिथि 192.168.198.10 (ऊपर परिभाषित) को सीधे पिंग / ssh कर सकता हूं।

    console ~> route -n
    Kernel IP routing table
    Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
    <snip>
    192.168.198.0   0.0.0.0         255.255.255.0   U     0      0        0 vmnet8
    192.168.233.0   0.0.0.0         255.255.255.0   U     0      0        0 vmnet1
    
  • एक लिनक्स नोट से, vmware के साथ सिस्टमाइट इनिट के साथ कुछ अच्छी तरह से शुरू होता है, अच्छी तरह से `शुरू करने के लिए, और इसके साथ ही मैंने पाया है कि मैं सिर्फ vmware को पुनः आरंभ नहीं कर सकता (vmci फिर से लोड नहीं करता है), और मुझे पुनरारंभ करना होगा छड़ी के ऊपर NAT / DHCP सामान बनाने के लिए मेरी मशीन, लेकिन आपको समस्या नहीं हो सकती है। हालांकि सिस्टमड सॉल्यूशंस के साथ कुछ धागे हैं

बहुत अच्छा लगता है, लेकिन ufw मेरे OS X 10.9.5 मशीन पर उपस्थित नहीं होता है। क्या ओएस एक्स पुराना कुछ था, लेकिन अब इसके बजाय कुछ और उपयोग कर रहा है?
स्टीव जोर्गेनसन

अरे @SteveJorgensen, ufw linux के अंतर्गत है (मेरा होस्ट linux है, और अतिथि इस जवाब में OS X था), लेकिन OS X के साथ मेजबान के समान विचार है; जो कुछ भी उपकरण उपयुक्त है, उसके साथ मेजबान पर कुछ विशिष्ट पोर्ट (22222 से ऊपर के मामले में) तक पहुंच की अनुमति दें, और अतिथि को अग्रेषण करने के लिए VMWare को बताएं। Ufw का दूसरा उल्लेख यह था कि आपके पास जो कुछ भी अतिथि के रूप में है, उसमें एक फ़ायरवॉल भी सक्षम हो सकता है, इसलिए आपको अतिथि में लॉग इन करने और उस पोर्ट तक पहुंचने की अनुमति देनी होगी जिसे आप (ऊपर के मामले में, 22) तक रीडायरेक्ट कर रहे थे
herdinghhecats

मेरे पास इस समय OS X उपलब्ध नहीं है, लेकिन मुझे लगता है कि मुझे ipfwकुछ बिंदुओं का उपयोग करना याद है । मैंने आपके लिए एक त्वरित खोज की, और कई सहायक पोस्ट नहीं देखीं , लेकिन यह उल्लेख करता है pfctl, जिसे मैं किसी अन्य पोस्ट में देखता हूं, ओएस एक्स 10.10 अप में pfctl के लिए प्रतिस्थापन लगता है। मैं यह परीक्षण नहीं कर सकते खेद है, लेकिन उम्मीद है कि यह थोड़ा में मदद करता है
herdingofthecats

2

चीजों को सरल बनाने के लिए:

  1. अपना VM चलाएं
  2. मेनू> वर्चुअल मशीन> नेटवर्क एडाप्टर> ब्रिजिंग से।
  3. अपने VM में, अपना IP पता ढूंढें, जैसे कि linux में ifconfig:।
  4. मेजबान से, ssh का उपयोग कर ssh user@ip

मैं मान रहा हूँ कि आपके पास एक SSH सेवा स्थापित और चल रही है।


1

IP को SSH में जानने के बजाय, मैंने अपने Linux मेहमानों पर Avahi को सेटअप किया है, इसलिए यह एक गतिशील होस्टनाम प्रसारित करता है, यहां मेरे उत्तर की जांच करें: /superuser//a/710233/242604

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


-1

आप एक पुल नेटवर्क इंटरफ़ेस का उपयोग कर सकते हैं जो इंटरनेट और आसान एसएसएच कनेक्शन को जोड़ने में मदद करता है।

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