Vagrant up kullanarak VM'ye nasıl kimlik doğrulama yapılır?


9

Vagrant Up sırasında kimlik doğrulama hatası, vagrant ssh ve ssh vagrant @ localhost -p2222 çalışırken

Önyükleme sırasında Vagrant kullanarak bir kabuk komut dosyası yürütmek istiyorum. VM aşağıdakiler kullanılmaya başlanırken Vagrant Kimlik Doğrulaması yapamıyor 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...
    ...

Çalıştırdıktan sonra CTRL + Cbu kullanılarak VM için kimlik doğrulaması da mümkündür vagrant sshvessh vagrant@localhost -p2222

Vagrant dosyası

Varsayılan Vagrantfile kullanıyorum ve yalnızca ana bilgisayar adını değiştirdim:

# -*- 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"
  ...

Vagrant sürümü

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

Soru

Kullanarak VM'ye nasıl kimlik doğrulaması yapılır vagrant up?

Yanıtlar:


6

Sorun, Vagrant kutusunda Ortak anahtar bulunmadığından kaynaklandı. Aşağıdaki iki seçenekten biri sorunu çözer.

İlk seçenek Packer kullanarak yeni bir Vagrant kutusu oluşturmaktır. Aşağıdaki snippet'i json dosyasına ekleyin ve Vagrant kutusunu oluşturun.

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

Bu vagrant betiğinin içeriği aşağıdaki gibidir:

#!/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

İkinci seçenek (repackage etmektir vagrant packageaşağıdaki komutlar belirtilen bir kez Serseri kutu) burada been çalıştırmak:

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

Bu benim için çalıştı! Merak edenler için bu, Vagrant'ın eski geçersiz olanı kullanmak yerine yeni bir güvenli anahtar oluşturmasını sağlar (eğer varsa).
Nebojsac

5

İlk olarak, şunu deneyin: makine yapılandırmanızda hangi vagrant özel anahtarın olduğunu görmek için

$ vagrant ssh-config

Misal:

$ 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

İkinci olarak, yapın: insecure_private_key dosyasının içeriğini kendi sistem özel anahtarınızın içeriğiyle değiştirin


1

Ben de ötesine geçemedim:

varsayılan: SSH kimlik doğrulama yöntemi: özel anahtar

VirtualBox GUI'yi kullandığımda bir OS işlemci uyuşmazlığı olduğunu söyledi.

Vagrant'ın daha da ilerlemesi için, BIOS ayarlarında sezgisel olarak karşı koymak zorunda kaldım:

Devre Dışı Bırak: Sanallaştırma

Etkinleştir: VT-X

Bu ayarı BIOS'unuzda değiştirmeyi deneyin.


BIOS'tan Sanallaştırmayı etkinleştirmek, "Vagrant SSH" ile ilgili
sorunumu çözdü

0

Gördüğüm komut dosyalarının birçoğu genel anahtarı çekmek için bunu kullanıyor:

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

Gördüğüm sorun, github SSL sertifikası için www.github.comdeğil raw.github.com. Bu nedenle, bir 400hata alıyorsunuz . /home/vagrant/.ssh/authorized_keysDosyanın içeriğine bakarak bunu doğrulayabilirsiniz .

-kSSL sertifikası kontrolünü yoksay seçeneğini kullanmayı deneyin :

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

0

VM'nizin ağ erişimine sahip olduğundan emin olun. Sanal Kutu kullanıyorsanız, makine ayarınıza, ağ sekmesine girin ve Kablo Bağlantınızın işaretli olduğundan emin olun.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.