Vagrant ssh gagal dengan VirtualBox

39

gelandangan gagal ketika sampai ke bagian ssh:

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.

Lalu ketika saya kemudian mencoba dan terhubung menggunakan vagrant ssh atau vagrant reload atau sejenisnya, saya mendapatkan ini:

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.

Tolong bantu! Saya benar-benar bingung.

Salam Hormat,

Luke

suam-suam kuku
sumber

Jawaban:

10

Saya melihat masalah ini dengan pengaturan saya dan akhirnya mempersempit ke fakta bahwa saya telah menambahkan nama ke file host lokal. Jadi saya punya:

127.0.0.1 localhost myname myalias

Menghapus myaliasyang saya tambahkan dan itu booting oke. Terima kasih kepada @saphirlazuli untuk petunjuk bahwa ini berhubungan dengan jaringan.

Mark Cheverton
sumber
Apa solusinya jika saya ingin melestarikan myalias?
Mickey Cheong
Jika Anda ingin menggunakan alias, cara Debian / Ubuntu adalah menjaga baris pertama tetap adil 127.0.0.1 localhost, tetapi tambahkan baris kedua dengan alias Anda, seperti:127.0.1.1 foo bar baz
CodeGnome
26

Saya memiliki masalah yang sama dengan kotak yang diberikan dalam "Memulai" situs Vagrant. Solusi saya di bawah ini adalah untuk kotak tutorial ini.

Saya menemukan solusinya di sini: https://github.com/mitchellh/vagrant/issues/391

  1. di VagrantFile, tambahkan mode gui: config.vm.boot_mode = :gui
  2. menjalankan vagrant up
  3. di gui, log dengan pengguna "gelandangan" (kata sandi = "gelandangan")
  4. int the gui, jalankan sudo /etc/init.d/networking restart, dalam /etc/network/interfacesfile, Anda sekarang harus memiliki bagian dengan#VAGRANT-BEGIN [...]#VAGRANT-END
  5. berjalan vagrant reloaddi mesin fisik
saphirlazuli
sumber
3
Ini berhasil untuk saya, terima kasih. Saya telah menjalankan Vagrant sebelumnya, kemudian berhenti bekerja dengan kotak baru. Adakah yang tahu penyebabnya?
Andrew Vit
sudo /etc/init.d/networking restart berfungsi untuk saya, terima kasih!
Anatoly
2
Saya melakukan restart, tetapi di / etc / network / interfaces Saya tidak memiliki bagian dengan # VAGRANT-BEGIN [...] # VAGRANT-END, ada petunjuk mengapa? Bisakah saya menambahkannya secara manual?
sparrovv
1
Saya dapatThe following settings shouldn't exist: boot_mode
Calin
1
Masuk ke versi terbaru Anda harus meletakkan v.gui = true untuk konfigurasi penyedia
Calin
6

Ini adalah masalah yang terputus-putus bagi saya, dan sepertinya terkait dengan jaringan. Saya menemukan beberapa informasi lebih bermanfaat di masalah Vagrant GitHub # 391 dan # 455 . Saya mencoba menghapus jaringan host-only saya yang tidak terpakai dalam pengaturan VirtualBox (seperti yang direkomendasikan sebagai perbaikan potensial dalam salah satu masalah GitHub) yang sepertinya tidak membantu.

Memulai dalam mode gui (seperti yang dijelaskan dalam jawaban sebelumnya) adalah cara yang bagus untuk debug / memperbaiki masalah. Saya menemukan bahwa itu karena alasan apa pun, VM tidak dapat memperoleh alamat IP saat startup. Mulai dalam mode GUI kemudian masuk (gelandangan / gelandangan) dan berjalan sudo dhclientdi OS tamu akan mengambil alamat IP dan proses pengaturan Vagrant akan selesai dengan sukses.

Masih mencari perbaikan permanen.

Semoga ini membantu!

[DIedit UNTUK MENAMBAH]: Saran yang bermanfaat telah ditambahkan ke GitHub Edisi # 455 yang melibatkan penambahan konfigurasi berikut ke Anda Vagrantfile:

config.ssh.max_tries = 150

Ini saat ini bekerja untuk saya, dan tampaknya masuk akal karena masalahnya tampaknya terkait dengan batas waktu - meningkatkan jumlah percobaan harus meningkatkan kemungkinan proses SSH berhasil dalam waktu. Ini adalah masalah yang terputus-putus di tempat pertama jadi saya akan memberikan penilaian untuk sementara waktu, tapi semoga saja! Terima kasih kepada karel1980 untuk menyarankan perbaikannya.

DuffJ
sumber
Menghapus jaringan hanya-host saya yang tidak digunakan dalam pengaturan VirtualBox berhasil bagi saya! Terima kasih!
Duke
1
Tampaknya pengaturan ini sudah dicabut mulai 1.3.X - github.com/berkshelf/berkshelf/pull/856
Jeremy Hajek
5

Jika vagrant upgagal, saya sarankan yang berikut:

  1. Boot dengan mode gui : ini membantu untuk melihat apakah gambar rusak (atau misalnya apa yang dilakukannya sebelum penyediaan dimulai), atur config.vm.boot_mode = :guidi AndaVagrantfile
  2. Debug logging : jalankan ketentuan dengan debug ,chef.log_level = :debug
  3. Paket ulang kotak : kadang-kadang Anda perlu menginstal sesuatu sebelum semuanya berjalan - untuk bootstrap bootstrapper. Itu tidak benar-benar mungkin, sehingga yang paling mudah adalah dengan boot vm tanpa penyediaan apapun, menginstal apa pun yang Anda perlu dan re-paket kotak ( vagrant box repackage foo, kemudian vagrant import foodan kemudian menambahkan foodalam Anda Vagrantfile)

Catatan: mode gui dapat memiliki masalah lain, misalnya bagi saya tidak ada ketentuan yang berfungsi dengan gelandangan 0.7.5saat gui diaktifkan. Masih bagus untuk men-debug kotak yang sebenarnya.

Sampai
sumber
2

Jenis kartu jaringan saya awalnya disetel ke 82540EM. Saya mengubahnya menjadi Am79C973dan sekarang Vagrant Facebook berfungsi setiap saat. Saya sudah mulai beberapa VM, bahkan reboot host dan masih berfungsi.

Perintahnya adalah:

VBoxManage modifyvm yourmachinename --nictype1 Am79C973

Ingatlah untuk mengemas ulang dan membaca kotak Anda ke Vagrant.

Saya menjalankan Debian Squeeze 64-bit sebagai tuan rumah dan tamu, menggunakan VirtualBox 4.1.16 pada mesin Core i7-2600.

Simon Celen
sumber
1

Jika modul kernel sudah diinstal, coba mulai VM langsung dengan VirtualBox. Ini akan menunjukkan kepada Anda setiap kesalahan startup yang ditemukan saat VM melakukan boot. Masalah seperti kesalahan filesystem akan menghentikan daemon SSH server dari beroperasi dengan benar.

Sasha
sumber
1

Saya memiliki masalah yang sama pada osx (VirtualBox 4.1.0 dan Vagrant 0.8.6), dan bagi saya satu-satunya bantuan adalah:

  1. login dengan: gui melalui login / pass: gelandangan / gelandangan
  2. modifikasi file “/etc/rc.local” untuk memasukkan baris “sh /etc/init.d/networking restart” sesaat sebelum “exit 0 ″.
  3. nonaktifkan: gui
  4. isi ulang gelandangan

Saya telah menemukan ini di: https://github.com/mitchellh/vagrant/issues/391 thx mikhailov.

sparrovv
sumber
1

Saya punya masalah yang sama. Dalam kasus saya, emulasi 64-bit tidak diaktifkan. Mengaktifkan fitur ini di bios saya memperbaiki masalah ini.

meninggal tiga kali lipat
sumber
1

Kotak tamu saya tidak bisa boot dengan benar karena masalah disk.

Saya memaksa VM untuk menutup via

Kontrol VBoxManage poweroff

Kemudian saya memodifikasi saya Vagrantfileuntuk memasukkan baris ini:

config.vm.boot_mode =: gui

Selanjutnya, saya berlari kembali

gelandangan

Di GUI yang muncul, saya harus menjalankan utilitas 'disk fixer'.

Setelah menjalankan utilitas disk, VM saya berhasil di-boot, dan kemudian saya bisa menjalankannya vagrant ssh.

Kevin Meredith
sumber
1

Saya membatalkan komentar bagian dalam Vagrantfile seperti ini:

  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

Saya menyimpannya dan kemudian melakukannya

vagrant reload

dan kemudian semuanya bekerja dengan baik. Saya tidak yakin mengapa itu memperbaikinya.

Pavan Katepalli
sumber
0

Jenis sudo /etc/init.d/vboxdrv setup. Sekarang seharusnya berfungsi.

Daniel
sumber
0

Masalah saya adalah di

/etc/hosts

Saya punya entri

127.0.1.1 lucid32

di mana seperti nama kotak saya lucidtest, saya mengubah baris di atas menjadi

127.0.1.1 lucidtest

dan itu berhasil.

Owais Lone
sumber
0

Pesan ini menunjukkan ssh server tidak berjalan di VM. pastikan sudah terpasang

sudo apt-get install openssh-server

dan berlari

ssh localhost

seharusnya tidak memberikan kesalahan.

Untuk mengecualikan kesalahan dalam gelandangan, Anda harus mencoba ssh ke vm secara langsung dengan:

ssh vagrant @ localhost -p2222

(dengan asumsi pengguna default dan penerusan porta)

Viktor Trón
sumber
0

Di windows 7 jalankan

vagrant ssh

jika Anda mendapatkan sesuatu seperti ini ...

`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

Maka Anda harus menggunakan sesuatu seperti ini ...

ssh [email protected] -p 2222 -i /cygdrive/u/.vagrant.d/insecure_private_key

Perhatikan saya menggunakan cygwin di kotak windows saya daripada Putty.

Artistan
sumber
OP tidak menggunakan Windows 7.
Tanner Faulkner
Terima kasih r.tanner.f - Tidak ada OS yang ditentukan, ini membantu saya, semoga membantu orang lain.
Artistan
Tidak tahu mengapa Anda diturunkan, ini sepertinya bisa membantu orang lain
Mark
0

Berikut adalah alasan lain yang mungkin untuk kesalahan ini:

[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.

Nama pengguna dapat ditentukan dalam file konfigurasi seperti ini:

config.ssh.username = "badusername"

Jika nama pengguna itu tidak ada atau tidak dapat masuk karena suatu alasan, baik Anda maupun Vagrant tidak dapat masuk SSH ke VM. Dengan demikian Vagrant akan "gagal terhubung", bahkan jika VM sebenarnya berjalan dan berfungsi dengan baik.

SunSparc
sumber
0

Masalah saya adalah bahwa vagrant sshtidak akan melakukan apa pun.

Saya dihapus ~/.ssh/configdan masalahnya terpecahkan. Salin file tersebut di suatu tempat atau ganti nama jika Anda ingin menyimpannya.

zMan
sumber
pada sistem lokal atau jarak jauh?
Jeremy Hajek
0

Seperti yang lain, saya menggunakan GUI (Saya selalu mengaktifkan ini untuk mencegah masalah seperti ini)

config.vm.boot_mode = :gui

Saya kemudian menggunakan menu VirtualBox, karena perintah di sini tidak berfungsi. Mesin> Reset di menu, lalu ssh kemudian memungkinkan.

mahemoff
sumber
0

Saya mematikan vm yang sedang berjalan dan membuat basebox baru:

  1. Matikan VM Saya mencoba untuk mengekspor
  2. vagrant package --base "salt-master basebox" --vagrantfile ./Vagrantfile
Zippy Zeppoli
sumber