Vagrant का उपयोग करके VM को कैसे प्रमाणित करें?


9

वैग्रांट अप के दौरान प्रमाणीकरण विफलता, जबकि योनि ssh और ssh योनि @ localhost -p2222 काम करती है

मैं बूट पर वैग्रंट का उपयोग करके एक शेल स्क्रिप्ट निष्पादित करना चाहूंगा। Vagrant प्रमाणीकरण करने में असमर्थ है, जबकि VM का उपयोग शुरू कर दिया गया है vagrant up:

c:\temp\helloworld>vagrant up
Bringing machine 'default' up with 'virtualbox' provider...
==> default: Importing base box 'helloworld'...
==> default: Matching MAC address for NAT networking...
==> default: Setting the name of the VM: helloworld_default_1398419922203_60603
==> default: Clearing any previously set network interfaces...
==> default: Preparing network interfaces based on configuration...
    default: Adapter 1: nat
==> default: Forwarding ports...
    default: 22 => 2222 (adapter 1)
==> default: Booting VM...
==> default: Waiting for machine to boot. This may take a few minutes...
    default: SSH address: 127.0.0.1:2222
    default: SSH username: vagrant
    default: SSH auth method: private key
    default: Error: Connection timeout. Retrying...
    default: Error: Authentication failure. Retrying...
    default: Error: Authentication failure. Retrying...
    default: Error: Authentication failure. Retrying...
    default: Error: Authentication failure. Retrying...
    ...

निष्पादित करने के बाद CTRL + Cवीएम का उपयोग करके प्रमाणित करना संभव है vagrant sshऔरssh vagrant@localhost -p2222

वैग्रांत फ़ाइल

मैं डिफ़ॉल्ट Vagrantfile का उपयोग करता हूं और मैंने केवल hostname बदला है:

# -*- mode: ruby -*-
# vi: set ft=ruby :

# Vagrantfile API/syntax version. Don't touch unless you know what you're doing!
VAGRANTFILE_API_VERSION = "2"

Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
  # All Vagrant configuration is done here. The most common configuration
  # options are documented and commented below. For a complete reference,
  # please see the online documentation at vagrantup.com.

  # Every Vagrant virtual environment requires a box to build off of.
  config.vm.box = "helloworld"
  ...

वैग्रांत संस्करण

c:\temp\helloworld>vagrant --version
Vagrant 1.5.1

सवाल

वीएम का उपयोग करके प्रमाणित कैसे करें vagrant up?

जवाबों:


6

समस्या इसलिए हुई क्योंकि कोई भी सार्वजनिक कुंजी वैग्रेंट बॉक्स पर नहीं रहती है। निम्नलिखित दो विकल्पों में से एक समस्या हल करता है।

पहला विकल्प पैकर का उपयोग करके एक नया वैग्रेंट बॉक्स बनाना है। Json फ़ाइल में निम्न स्निपेट जोड़ें और वैग्रैंट बॉक्स बनाएँ।

"provisioners": [{
    "type": "shell",
    "scripts": [
      "scripts/vagrant.sh"
    ]
}]

इस योनि लिपि की सामग्री इस प्रकार है:

#!/bin/bash
yum install wget -y

mkdir /home/vagrant/.ssh
wget --no-check-certificate \
    'https://raw.githubusercontent.com/mitchellh/vagrant/master/keys/vagrant.pub' \
    -O /home/vagrant/.ssh/authorized_keys
chown -R vagrant /home/vagrant/.ssh
chmod -R go-rwsx /home/vagrant/.ssh

दूसरा विकल्प यह है vagrant packageकि एक बार यहां बताई गई निम्न आज्ञाओं को चलाने के बाद वैग्रेंट बॉक्स को वापस कर दिया जाए :

mkdir -p /home/vagrant/.ssh
wget --no-check-certificate https://raw.github.com/mitchellh/vagrant/master/keys/vagrant.pub -O /home/vagrant/.ssh/authorized_keys
chmod 0700 /home/vagrant/.ssh
chmod 0600 /home/vagrant/.ssh/authorized_keys
chown -R vagrant /home/vagrant/.ssh

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

5

सबसे पहले, प्रयास करें: यह देखने के लिए कि मशीन कॉन्फिगरेशन में आपको कौन सी वैजाइनल निजी कुंजी है

$ vagrant ssh-config

उदाहरण:

$ vagrant ssh-config
Host default
  HostName 127.0.0.1
  User vagrant
  Port 2222
  UserKnownHostsFile /dev/null
  StrictHostKeyChecking no
  PasswordAuthentication no
  IdentityFile C:/Users/konst/.vagrant.d/insecure_private_key
  IdentitiesOnly yes
  LogLevel FATAL

http://docs.vagrantup.com/v2/cli/ssh_config.html

दूसरा, ऐसा करें: अपने स्वयं के सिस्टम निजी कुंजी की सामग्री के साथ फ़ाइल insecure_pStreet_key की सामग्री बदलें


1

मैं भी पार नहीं कर सका:

डिफ़ॉल्ट: SSH सामान्य विधि: निजी कुंजी

जब मैंने वर्चुअलबॉक्स GUI का उपयोग किया, तो उसने मुझे बताया कि एक OS प्रोसेसर बेमेल था।

आगे की प्रगति के लिए योनि प्राप्त करने के लिए, BIOS सेटिंग्स में मुझे प्रति-सहजता से मुकाबला करना था:

अक्षम करें: वर्चुअलाइजेशन

सक्षम करें: वीटी-एक्स

अपने BIOS में इन सेटिंग को टॉगल करने का प्रयास करें।


BIOS से वर्चुअलाइजेशन को सक्षम करने से मेरी समस्या "
वैग्रंथ

0

सार्वजनिक कुंजी को खींचने के लिए मेरे द्वारा उपयोग की जाने वाली बहुत सी स्क्रिप्ट:

curl -L https://raw.github.com/mitchellh/vagrant/master/keys/vagrant.pub -o /home/vagrant/.ssh/authorized_keys

मैंने देखा है कि मुद्दा यह है कि github SSL प्रमाणपत्र के लिए है www.github.com, नहीं raw.github.com। इसलिए, आपको अंत में एक 400त्रुटि मिल रही है । आप /home/vagrant/.ssh/authorized_keysफ़ाइल की सामग्री को देखकर इसे सत्यापित कर सकते हैं ।

-kSSL सर्टिफिकेट चेक को नजरअंदाज करने के लिए विकल्प का उपयोग करें:

curl -L -k https://raw.github.com/mitchellh/vagrant/master/keys/vagrant.pub -o /home/vagrant/.ssh/authorized_keys

0

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

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