Vagrant वर्चुअल मशीन में SSH नहीं कर सकते


11

10.0.0.23होस्टनाम के साथ आईपी ​​पते पर स्थापित स्थानीय वैग्रंट मशीन lamp-vm

vagrant sshकमांड का उपयोग करते हुए , मैं बस ठीक से कनेक्ट कर सकता हूं और मुझे जो कुछ भी ज़रूरत है वह सब कुछ कर सकता हूं।

यह एक त्रुटि बनाता है

$ ssh योनि @ दीपक-vm -v -v

debug1: पते से कनेक्ट करें 10.0.0.23 पोर्ट 22: कनेक्शन टाइम आउट
ssh: होस्ट होस्ट लैंप-वीएम पोर्ट 22 से कनेक्ट करें: कनेक्शन टाइम आउट

मेरी /etc/hostsफ़ाइल में है 10.0.0.23 lamp-vm

मेरी .ssh / config फाइल लगती है

होस्ट लैंप-वीएम
उपयोगकर्ता योनि
पहचान ~ ~ .ssh / योनि

मैंने ssh कमांड की कोशिश की है और साथ -i /path/to/.sh/identity_fileही साथ भी।

मैं SSH का उपयोग करके अपने वैग्रंट वर्चुअल मशीन से कैसे कनेक्ट करूं?

जवाबों:


8

मुझे इस समस्या का भी सामना करना पड़ा और यह मेरा अंतिम कॉन्फ़िगरेशन था जिसने मुझे अपने मेजबान मशीन में कहीं से भी अपनी योनि मशीन में ssh करने की अनुमति दी।

Vagrantfile:

...
# Setting up private_network to have virtual host
config.vm.network :private_network, ip: "192.168.33.10"

# Enable ssh forward agent
config.ssh.forward_agent = true
...

मशीन में ssh:

ssh vagrant@192.168.33.10

आपको पासवर्ड के लिए संकेत दिया जाएगा (डिफ़ॉल्ट आवारा है):

vagrant@192.168.33.28's password:

और उछाल, तुम अंदर हो!

पुनश्च * आप अपने मेजबान मशीन में कहीं भी scp का उपयोग कर सकते हैं:

scp /path/to/src/file vagrant@192.168.33.10:/path/to/destination/file

जब यह काम करता है, तो यह काफी नाजुक होता है - मैंने पाया कि हमारे वैग्रांटफाइल ने वर्चुअलबॉक्स वीएम पर कुछ संपादन / / / नेटवर्क / इंटरफेस का कारण बना, जिसका मतलब था कि मेरा एसएसएच कनेक्शन गिर जाएगा। एक लोकलहोस्ट कनेक्शन ( ssh -p 2222 vagrant@localhost) इससे प्रभावित नहीं होगा।
रिचवेल

8

यह पुराना है, लेकिन कोई जवाब नहीं है, मैं एक प्रदान करूंगा। कमान:

vagrant ssh

के बराबर है

ssh vagrant@localhost -p 2222 -i .vagrant/machines/default/virtualbox/private_key

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


यह असली और सही उत्तर है! मुद्दों के बिना काम करता है, उदाहरण के लिए मोबाइल के साथ। आपको निजी_की के लिए पूर्ण पथ निर्दिष्ट करने की भी आवश्यकता है
sineverba

6

यह बर्ताव डिज़ाइन के चलते है।

वैग्रांट वर्चुअलबॉक्स NAT मोड का उपयोग करता है जिसका अर्थ है पोर्ट फ़ॉरवर्डिंग का उपयोग करना।

आप NAT मोड का उपयोग करके सीधे अपने VM में SSH नहीं कर सकते।

'वेजिटेंट एसएचएस' का उपयोग करने का मतलब है कि योनि आपके लिए अग्रसारण मार्ग का काम करेगी ताकि आपको इसके बारे में चिंता न करनी पड़े। मुझे लगता है कि यह डिफ़ॉल्ट रूप से पोर्ट 2222 पर लोकलहोस्ट से कनेक्ट हो जाएगा लेकिन यह किसी भी पोर्ट नंबर टकराव को हल करने की कोशिश करेगा।

यदि आपको अपने वीएम को सीधे एसएसएच करने की आवश्यकता है, तो वीएम को केवल होस्ट या ब्रिजिंग नेटवर्किंग मोड में स्विच करें।


धन्यवाद फिलिप, लेकिन मैं इसे हल करने के बारे में कैसे जाना होगा? अनुभवहीनता के लिए क्षमा करें।
csi

1
मैं केवल होस्ट मोड का उपयोग कर रहा हूं और समस्या बनी रहती है।
csi

स्वीकृत उत्तर होना चाहिए। इसे समझने में बहुत मददगार है - पोर्टहॉस्ट 2222 पर पोर्टहॉस्ट के रास्ते से गुजरना एक वर्किंग वैग्रांट सेटअप का मार्ग था (किसी कारण से मैं अभी तक काम करने के लिए असुरक्षित_पार्टी_की कुंजी प्राप्त नहीं कर सका।) मैंने पाया कि मानक 'असुरक्षित निजी कुंजी' नहीं थी। काम, इसलिए मैंने वैग्रांटफाइल में एक अलग निजी कुंजी और उपयोगकर्ता नाम निर्दिष्ट किया, लेकिन लोकलहोस्ट पोर्ट 2222 भाग को बदलने की आवश्यकता नहीं थी।
रिचवेल

5

मैंने इसे एक टिप्पणी के रूप में जोड़ा होगा, लेकिन वर्तमान में मेरे पास ऐसा करने के लिए पर्याप्त प्रतिनिधि नहीं है। मैंने आपके VM को ब्रिज मोड में सेट करने के लिए कैसे लिखा है:

/ubuntu/116861/setting-up-a-network-between-a-host-and-guest-virtual-machine/116909#116909

मुझे उम्मीद है कि आपको यह काम का लगेगा!


+1 यहां और AU.SE पर; अच्छा लिखो।
msanford

3

विंडोज / वैग्रंट / उबंटू

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

ssh vagant@127.0.0.1 -p 2222 -v

-V इसे वर्बोज़ मोड में डालेगा और डिबग इंफ़ॉर्मेशन प्रदर्शित करेगा ...

$ ssh vagant@127.0.0.1 -p 2222 -v
OpenSSH_7.1p1, OpenSSL 1.0.2e 3 दिसंबर, 2015
डिबग 1: 127.0.0.1 से जुड़ना [127.0.0.1] पोर्ट 2222 -
डिबग 1: कनेक्शन स्थापित।
debug1: पहचान फ़ाइल /home/Jamie/.ssh/id_rsa टाइप 1
debug1: key_load_public: ऐसी कोई फ़ाइल या निर्देशिका
debug1: पहचान फ़ाइल /home/Jamie/.s_id_rsa-cert टाइप -1
debug1: key_load_public: ऐसी कोई फ़ाइल या फ़ाइल नहीं निर्देशिका
debug1: पहचान फ़ाइल /home/Jamie/.ssh/id_dsa टाइप -1
debug1: key_load_public: ऐसी कोई फ़ाइल या निर्देशिका
debug1: पहचान फ़ाइल /home/Jamie/.sh/id_dsa-cert टाइप -1
debug1: key_load_public: नहीं फ़ाइल या निर्देशिका
debug1: पहचान फ़ाइल /home/Jamie/.ssh/id_ecdsa टाइप -1
debug1: key_load_public: ऐसी कोई फ़ाइल या निर्देशिका
debug1: पहचान फ़ाइल /home/Jamie/.ssh/id_ecdsa-cert टाइप -1
debug1: key_load_public: कोई फ़ाइल या निर्देशिका
debug1: पहचान फ़ाइल /home/Jamie/.ssh/id_ed2551919 -1
डिबग 1: की_लोड_पब्लिक: ऐसी कोई फ़ाइल या निर्देशिका
डीबग 1: पहचान फ़ाइल /home/Jamie/.ssh/id_ed25519-cert टाइप -1
डीबग 1: प्रोटोकॉल
डिबग 1 के लिए संगतता मोड सक्षम करना: स्थानीय संस्करण स्ट्रिंग SSH-2.0-OpenSSH_7.1
डीबग 1 : दूरस्थ प्रोटोकॉल संस्करण 2.0, दूरस्थ सॉफ्टवेयर संस्करण OpenSSH_6.6.1p1 Ubuntu-2ubuntu2.6
debug1: मिलान: OpenSSH_6.6.1p1 Ubuntu-2ubuntu2.6 pat OpenSSH_6.6.1 - कॉम्पिटिटर
0x04000000 डिबग 1: योनि के रूप में 127.0.0.1:2222 पर प्रमाणित। '
debug1: SSH2_MSG_KEXINIT ने
127.0.0.1 द्वारा कनेक्शन भेजा

तो ... SSH2_MSG_KEXINIT का मतलब है कि चाबियों का आदान-प्रदान किया जा रहा है। यह शीघ्र ही विफल हो जाता है ...

इस मामले में, मैंने अपनी चाबियाँ हटा दीं और उन्हें वीएम पर ऐसा करने के लिए फिर से तैयार किया। ( http://ask.xmodulo.com/sshd-error-could-not-load-host-key.html )

$ ls -al / etc / ssh / ssh key
$ sud rm -r / etc / ssh / ssh
key
$ sudo dpkg-reconfigure ओपनश-सर्वर

एक बार जब मेरी चाबियों को दोबारा हासिल किया गया तो मैं अपने वैग्रेंट बॉक्स में एसएसएच कर पाया।


0

वर्चुअल मशीन को नष्ट कर दिया वर्चुअल मशीन को
पुनः लोड करें
सब कुछ काम किया

यकीन नहीं क्यों लेकिन स्पष्ट रूप से पहले प्रावधान पर कुछ ठीक से लोड नहीं किया।


0

इस टिप्पणी को देखें: https://github.com/mitchellh/vagrant/issues/1936#issuecomment-21139674

मूल रूप से, निजी नेटवर्किंग का उपयोग करते समय, योनि अभी भी 127.0.0.1 पर ssh करती है। अपने निजी आईपी / होस्टनाम के बजाय ssh कमांड @ 127.0.0.1 का प्रयास करें।

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