Vagrant upを使用してVMを認証する方法は?


9

Vagrant Up中の認証の失敗、Vagrant sshおよびssh vagrant @ localhost -p2222は機能する

ブート時にVagrantを使用してシェルスクリプトを実行したいと思います。VMが次を使用して起動されている間、Vagrantは認証できません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を使用してVMに認証することができます。vagrant sshssh vagrant@localhost -p2222

浮浪者ファイル

デフォルトのVagrantfileを使用し、ホスト名のみを変更しました。

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

質問

使用したVMへの認証する方法vagrant up

回答:


6

この問題は、Vagrantボックスに公開鍵がないために発生しました。次の2つのオプションのいずれかで問題が解決します。

最初のオプションは、Packerを使用して新しいVagrantボックスを作成することです。次のスニペットをjsonファイルに追加し、Vagrantボックスをビルドします。

"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

2番目のオプションは、ここでvagrant package指定された次のコマンドが実行されたら、Vagrantボックスを再パッケージ()することです。

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

これは私のために働いた!不思議に思う人のために、これにより、古い無効なキーを使用する代わりに、Vagrantが新しい安全なキーを生成します(キーがある場合でも)。
Nebojsac 2015

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_private_keyの内容を、独自のシステム秘密鍵の内容で変更します。


1

私も超えられませんでした:

デフォルト:SSH認証方法:秘密鍵

VirtualBox GUIを使用すると、OSプロセッサーの不一致があることがわかりました。

さらに浮上するために、BIOS設定で直感的に対抗する必要がありました。

無効化:仮想化

有効化:VT-X

BIOSでこれらの設定を切り替えてみてください。


BIOSから仮想化を有効にすると、「Vagrant SSH」に関連した私の問題が解決しました
Firoz Sabaliya

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がネットワークにアクセスできることを確認してください。Virtual Boxを使用する場合は、マシンの設定、ネットワークタブを開き、ケーブル接続がチェックされていることを確認してください。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.