Vagrant sshがVirtualBoxで失敗する


39

ssh部分に到達するとvagrant upが失敗します。

myterminal$ vagrant up
[default] VM already created. Booting if its not already running...
[default] Running any VM customizations...
[default] Clearing any previously set forwarded ports...
[default] Forwarding ports...
[default] -- ssh: 22 => 2222 (adapter 1)
[default] -- db2: 30003 => 30003 (adapter 1)
[default] Cleaning previously set shared folders...
[default] Creating shared folders metadata...
[default] Booting VM...
[default] Waiting for VM to boot. This can take a few minutes.
[default] Failed to connect to VM!
Failed to connect to VM via SSH. Please verify the VM successfully booted
by looking at the VirtualBox GUI.

その後、vagrant sshまたはvagrant reloadなどを使用して接続しようとすると、これが得られます:

myterminal$ vagrant reload
[default] Attempting graceful shutdown of linux...
SSH connection was refused! This usually happens if the VM failed to
boot properly. Some steps to try to fix this: First, try reloading your
VM with `vagrant reload`, since a simple restart sometimes fixes things.
If that doesn't work, destroy your VM and recreate it with a `vagrant destroy`
followed by a `vagrant up`. If that doesn't work, contact a Vagrant
maintainer (support channels listed on the website) for more assistance.

助けてください!私は本当に困惑しています。

敬具、

ルカ

回答:


10

私はセットアップでこの問題を見つけ、最終的にローカルホストファイルに名前を追加したという事実に絞り込みました。だから私は持っていた:

127.0.0.1 localhost myname myalias

myalias追加したものを削除し、起動しました。@saphirlazuliがネットワーク関連であるという手がかりをありがとう。


myaliasを保持する場合の回避策は何ですか?
ミッキーチョン

エイリアスを使用する場合、Debian / Ubuntuの方法では、最初の行をそのままに127.0.0.1 localhostして、エイリアスを含む2行目を追加します。次のようになります127.0.1.1 foo bar baz
。– CodeGnome

26

Vagrantサイトの「はじめに」にあるボックスで同じ問題が発生しました。以下の私のソリューションは、このチュートリアルのボックス用です。

私はここで解決策を見つけます:https : //github.com/mitchellh/vagrant/issues/391

  1. VagrantFileで、guiモードを追加します。 config.vm.boot_mode = :gui
  2. 走る vagrant up
  3. GUIで、ユーザー「vagrant」でログインします(パスワード=「vagrant」)
  4. int gui、run sudo /etc/init.d/networking restart/etc/network/interfacesファイルで、次のセクションが必要です。#VAGRANT-BEGIN [...]#VAGRANT-END
  5. vagrant reload物理マシンで実行する

3
これは私のために働いた、ありがとう。Vagrantを実行していた後、新しいボックスで動作しなくなりました。何がそれを引き起こすのか?
アンドリューヴィット

sudo /etc/init.d/networking restartが動作します、ありがとう!
アナトリー

2
再起動しましたが、/ etc / network / interfacesに#VAGRANT-BEGIN [...]#VAGRANT-ENDのセクションがありません。理由は何ですか?手動で追加できますか?
-sparrovv

1
取得しますThe following settings shouldn't exist: boot_mode
-Calin

1
あなたは、プロバイダの設定のための真のv.guiを=配置する必要があり、最新バージョンに入った
CALIN

6

これは私にとって断続的な問題であり、間違いなくネットワークに関連しているようです。Vagrant GitHub issue #391および#455で、さらに役立つ情報を見つけました。VirtualBoxの設定で未使用のホストオンリーネットワークを削除しようとしました(GitHubの問題の1つの潜在的な修正として推奨)。

(前の回答で説明したように)GUIモードで開始することは、問題をデバッグ/修正するための優れた方法です。なんらかの理由で、VMが起動時にIPアドレスを取得できないためです。GUIモードで開始し、ログイン(vagrant / vagrant)sudo dhclientし、ゲストOSで実行するとIPアドレスが取得され、Vagrantセットアッププロセスが正常に完了します。

まだ恒久的な修正を探しています。

お役に立てれば!

[追加するために編集]:GitHub Issue#455に役立つ提案が追加さました。これには、次の設定をに追加する必要がありますVagrantfile

config.ssh.max_tries = 150

これは現在私のために働いており、問題はタイムアウトに関連しているように見えるため、理にかなっているようです-試行回数を増やすと、SSHプロセスが時間内に成功する確率が高くなります。そもそも断続的な問題ですので、しばらくの間判断を保留しますが、指を交差させるとうまくいきます!修正を提案してくれたkarel1980に感謝します。


VirtualBox設定で未使用のホストオンリーネットワークを削除するとうまくいきました!ありがとうございました!
デューク

1
この設定は1.3.Xで廃止されたようです-github.com/berkshelf/berkshelf/pull/856
ジェレミー

5

場合はvagrant up失敗し、私は次のことをお勧めします。

  1. GUIモードでの起動:これはイメージが壊れているかどうかを確認することができます(または、例えばプロビジョニングが開始される前にそれが何をするか)、セットconfig.vm.boot_mode = :guiあなたの中にVagrantfile
  2. デバッグロギングdebugを使用してプロビジョニングを実行し、chef.log_level = :debug
  3. ボックスを再パッケージ化します。他のすべてが実行される前に何かをインストールする必要がある場合があります-ブートストラップをブートストラップするため。それは実際には不可能であるため、プロビジョニングなしでvmをブートし、必要なものをインストールして、ボックスを再パッケージします(vagrant box repackage foovagrant import fooそしてに追加fooしますVagrantfile

注:guiモードには他の問題がある可能性があります。たとえば0.7.5、guiが有効になっているとvagrantでプロビジョニングが機能しません。ただし、実際のボックスをデバッグすることはまだ素晴らしいことです。


2

私のネットワークカードの種類は元々に設定されていました82540EM。私はそれを変更しAm79C973、今ではVagrant upが毎回動作します。複数のVMを起動し、ホストを再起動しても動作します。

コマンドは次のとおりです。

VBoxManage modifyvm yourmachinename --nictype1 Am79C973

箱を再梱包してVagrantに再読み込みしてください。

Core i7-2600マシンでVirtualBox 4.1.16を使用して、ホストとゲストとしてDebian Squeeze 64ビットを実行しています。


1

カーネルモジュールが既にインストールされている場合は、VirtualBoxでVMを直接起動してみてください。これにより、VMの起動時に発生した起動エラーが表示されます。ファイルシステムエラーなどの問題により、SSHサーバーデーモンが正常に動作しなくなります。


1

osx(VirtualBox 4.1.0およびVagrant 0.8.6)で同じ問題が発生しましたが、私にとって唯一の助けは次のとおりでした。

  1. login / pass:vagrant / vagrantによる:guiによるログイン
  2. 「/etc/rc.local」ファイルを変更して、「exit 0」の直前に「sh /etc/init.d/networking restart」という行を追加します。
  3. 無効化:gui
  4. 浮浪者のリロード

これはhttps://github.com/mitchellh/vagrant/issues/391 thx mikhailov で見つけました。


1

同じ問題がありました。私の場合、64ビットエミュレーションは有効になっていません。BIOSでこの機能を有効にすると、問題が修正されました。


1

ディスクの問題により、ゲストボックスが正常に起動しません。

VMを経由して強制的に閉じました

VBoxManage controlvm poweroff

次にVagrantfile、次の行を含めるように変更しました。

config.vm.boot_mode =:gui

次に、私は再実行しました

浮浪者

表示されたGUIで、「ディスク修正プログラム」ユーティリティを実行する必要がありました。

ディスクユーティリティを実行した後、VMが正常に起動し、実行できましたvagrant ssh


1

Vagrantfileのこの部分のコメントを外しました:

  config.vm.provider :virtualbox do |vb|
    # Don't boot with headless mode
    vb.gui = true

    # Use VBoxManage to customize the VM. For example to change memory:
    # vb.customize ["modifyvm", :id, "--memory", "1024"]
  end

保存してからやった

vagrant reload

そして、物事はうまくいきました。なぜそれがそれを修正したのか分かりません。



0

私の問題は

/etc/hosts

エントリーしました

127.0.1.1 lucid32

私のボックス名はlucidtest、上記の行を

127.0.1.1 lucidtest

そしてそれは働いた。


0

このメッセージは、VMでsshサーバーが実行されていないことを示しています。インストールされていることを確認してください

sudo apt-get install openssh-server

そして実行中

ssh localhost

エラーを与えるべきではありません。

vagrant内のエラーを除外するには、次の方法でvmに直接sshを試してください。

ssh vagrant @ localhost -p2222

(デフォルトのユーザーおよびポート転送を想定)


0

Windows 7で実行

vagrant ssh

このようなものを取得した場合...

`vagrant ssh` isn't available on the Windows platform. You are still able
to SSH into the virtual machine if you get a Windows SSH client (such as
PuTTY). The authentication information is shown below:

Host: 127.0.0.1
Port: 2222
Username: vagrant
Private key: U:/.vagrant.d/insecure_private_key

次に、このようなものを使用する必要があります...

ssh vagrant@127.0.0.1 -p 2222 -i /cygdrive/u/.vagrant.d/insecure_private_key

WindowsボックスでPuttyではなくcygwinを使用していることに注意してください。


OPは、Windows 7を使用していない
タナーフォークナー

r.tanner.fに感謝します-OSが指定されていません。これは私を助けてくれました。
アルティスタン

なぜあなたがダウン投票されたのかわからない、これは他の人々を助けることができるようだ
マーク

0

ここにあるもう一つの可能性のある理由のエラーのためには:

[default] Waiting for VM to boot. This can take a few minutes.
[default] Failed to connect to VM!
Failed to connect to VM via SSH. Please verify the VM successfully booted
by looking at the VirtualBox GUI.

ユーザー名は、次のように構成ファイルで指定できます。

config.ssh.username = "badusername"

そのユーザー名が存在しないか、何らかの理由でログインできない場合、ユーザーもVagrantもVMにSSHで接続できません。したがって、VMが実際に実行され、正常に動作していても、Vagrantは「接続に失敗します」。


0

私の問題は、vagrant sshまったく何もしないということでした。

私は削除~/.ssh/configし、問題は解決しました。ファイルをどこかにコピーするか、保持する場合は名前を変更します。


ローカルまたはリモートシステムで?
ジェレミーハ

0

他の場合と同様に、GUIを使用しました(このような問題を防ぐために、これを常にオンにしています)

config.vm.boot_mode = :gui

ここでコマンドが機能しなかったため、VirtualBoxメニューを使用しました。メニューで[マシン]> [リセット]を選択すると、sshが可能になりました。


0

実行中のvmをシャットダウンし、新しいベースボックスを作成しました:

  1. エクスポートしようとしているVMをシャットダウンします
  2. vagrant package --base "salt-master basebox" --vagrantfile ./Vagrantfile
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.