Vagrant ssh nie działa z VirtualBox

39

włóczęgowanie się kończy się niepowodzeniem, gdy dojdzie do części 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.

Następnie, gdy próbuję później połączyć się za pomocą błędnego ssh lub vagrant reload lub podobnego, otrzymuję to:

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.

Proszę pomóż! Jestem naprawdę zakłopotany.

Z poważaniem,

Luke

lukewm
źródło

Odpowiedzi:

10

Zauważyłem ten problem z moją instalacją i ostatecznie zawęziłem ją do faktu, że dodałem nazwę do lokalnego pliku hosts. Więc miałem:

127.0.0.1 localhost myname myalias

Usunąłem ten, myaliasktóry dodałem i uruchomił się dobrze. Dzięki @saphirlazuli za wskazówkę, że był związany z siecią.

Mark Cheverton
źródło
Jakie jest obejście, jeśli chcę zachować moje dane osobowe?
Mickey Cheong,
Jeśli chcesz użyć aliasu, sposobem Debiana / Ubuntu jest zachowanie pierwszej linii jako sprawiedliwej 127.0.0.1 localhost, ale dodaj drugą linię ze swoimi aliasami, tak jak:127.0.1.1 foo bar baz
CodeGnome
26

Miałem ten sam problem z polem podanym w „Pierwsze kroki” witryny Vagrant. Moje rozwiązanie poniżej dotyczy pudełka tego samouczka.

Znajduję rozwiązanie tutaj: https://github.com/mitchellh/vagrant/issues/391

  1. w VagrantFile dodaj tryb GUI: config.vm.boot_mode = :gui
  2. biegać vagrant up
  3. w GUI zaloguj się z użytkownikiem „włóczęga” (hasło = „włóczęga”)
  4. w GUI, uruchom sudo /etc/init.d/networking restart, w /etc/network/interfacespliku, musisz teraz mieć sekcję z#VAGRANT-BEGIN [...]#VAGRANT-END
  5. uruchomić vagrant reloadna maszynie fizycznej
saphirlazuli
źródło
3
To zadziałało dla mnie, dzięki. Kiedyś Vagrant działał wcześniej, a potem przestał działać z nowym pudełkiem. Wiesz, co to powoduje?
Andrew Vit
sudo /etc/init.d/networking restart działa dla mnie, dzięki!
Anatolij
2
Zrestartowałem się, ale w / etc / network / interfaces nie mam sekcji z # VAGRANT-BEGIN [...] # VAGRANT-END, jakieś wskazówki dlaczego? Czy mogę to dodać ręcznie?
sparrovv,
1
DostajęThe following settings shouldn't exist: boot_mode
Calin
1
W najnowszej wersji musisz podać v.gui = true dla konfiguracji dostawcy
Calin
6

Jest to dla mnie sporadyczny problem i zdecydowanie wydaje się być związany z siecią. Znalazłem więcej przydatnych informacji w Vagrant GitHub nr 391 i 455 . Próbowałem usunąć moją nieużywaną sieć tylko z hostem w ustawieniach VirtualBox (zalecanych jako potencjalna poprawka w jednym z problemów GitHub), co nie wydawało się pomocne.

Uruchamianie w trybie GUI (jak opisano w poprzedniej odpowiedzi) to świetny sposób na debugowanie / naprawianie problemów. Odkryłem, że dzieje się tak, ponieważ z jakiegokolwiek powodu maszyna wirtualna nie może uzyskać adresu IP podczas uruchamiania. Uruchomienie w trybie GUI, a następnie zalogowanie się (włóczęga / włóczęga) i uruchomienie sudo dhclientw systemie gościa spowoduje pobranie adresu IP i proces instalacji włóczęgi zakończy się pomyślnie.

Nadal jednak szukam stałego rozwiązania.

Mam nadzieję że to pomoże!

[ZMIENIONO DO DODANIA]: Do GitHub nr 455 dodano przydatną sugestię, która obejmuje dodanie następującej konfiguracji do Vagrantfile:

config.ssh.max_tries = 150

To obecnie działa dla mnie i wydaje się mieć sens, ponieważ problem wydaje się związany z przekroczeniem limitu czasu - zwiększenie liczby prób powinno zwiększyć prawdopodobieństwo sukcesu procesu SSH na czas. To przede wszystkim kwestia sporadyczna, więc zarezerwuję na chwilę osąd, ale kciuki to zadziała! Podziękowania dla karel1980 za zasugerowanie poprawki.

DuffJ
źródło
Usuwanie mojej nieużywanej sieci tylko z hostem w ustawieniach VirtualBox działało dla mnie! Dziękuję Ci!
Duke
1
Wygląda na to, że to ustawienie zostało obniżone od 1.3.X - github.com/berkshelf/berkshelf/pull/856
Jeremy Hajek
5

W przypadku vagrant upniepowodzenia polecam:

  1. Uruchom w trybie GUI : pomaga to sprawdzić, czy obraz jest uszkodzony (lub np. Co robi przed uruchomieniem udostępniania), ustaw config.vm.boot_mode = :guiw swoimVagrantfile
  2. Rejestrowanie debugowania : uruchom obsługę administracyjną za pomocą debugowania ,chef.log_level = :debug
  3. Przepakuj pudełko : czasami musisz coś zainstalować, zanim wszystko inne się uruchomi - aby załadować bootstrapper. To nie jest naprawdę możliwe, więc najłatwiej jest uruchomić maszynę wirtualną bez rezerw, co trzeba zainstalować i ponownie zapakować pudełko ( vagrant box repackage foo, a następnie vagrant import fooa następnie dodać foow twojej Vagrantfile)

Uwaga: w trybie GUI mogą występować inne problemy, np. Dla mnie żadne udostępnianie nie działa z włóczęgą, 0.7.5gdy GUI jest włączone. Mimo to nadal świetnie jest debugować rzeczywiste pudełko.

Do
źródło
2

Mój typ karty sieciowej był pierwotnie ustawiony na 82540EM. Zmieniłem to Am79C973i teraz Vagrant up działa za każdym razem. Uruchomiłem wiele maszyn wirtualnych, nawet uruchomiłem ponownie host i nadal działa.

Polecenie to:

VBoxManage modifyvm yourmachinename --nictype1 Am79C973

Pamiętaj, aby ponownie zapakować i przeczytać swoje pudełko Vagrant.

Używam Debian Squeeze 64-bit jako host i goście, używając VirtualBox 4.1.16 na maszynie Core i7-2600.

Simon Celen
źródło
1

Jeśli moduł jądra jest już zainstalowany, spróbuj uruchomić maszynę wirtualną bezpośrednio za pomocą VirtualBox. Spowoduje to wyświetlenie wszelkich błędów uruchamiania podczas uruchamiania maszyny wirtualnej. Problemy takie jak błędy systemu plików uniemożliwiają poprawne działanie demona serwera SSH.

Sasha
źródło
1

Miałem ten sam problem na osx (VirtualBox 4.1.0 i Vagrant 0.8.6), a dla mnie jedyną pomocą było:

  1. zaloguj się za pomocą: gui przez login / pass: vagrant / vagrant
  2. zmodyfikuj plik „/etc/rc.local”, aby zawierał wiersz „sh /etc/init.d/networking restart” tuż przed „wyjściem 0 ″.
  3. wyłącz: gui
  4. włóczęga przeładować

Znalazłem to na: https://github.com/mitchellh/vagrant/issues/391 thx mikhailov.

sparrovv
źródło
1

Miałem ten sam problem. W moim przypadku emulacja 64-bitowa nie była włączona. Włączenie tej funkcji w moich biosach rozwiązało problem.

umarł trzy razy
źródło
1

Moje okno gościa nie uruchomiło się poprawnie z powodu problemu z dyskiem.

Zmusiłem maszynę wirtualną do zamknięcia przez

VBoxManage controlvm poweroff

Następnie zmodyfikowałem mój, Vagrantfileaby uwzględnić tę linię:

config.vm.boot_mode =: gui

Następnie ponownie pobiegłem

włóczęgować się

W GUI, które się pojawiło, musiałem uruchomić narzędzie do naprawy dysku.

Po uruchomieniu narzędzia dyskowego moja maszyna wirtualna została pomyślnie uruchomiona, a następnie mogłem uruchomić vagrant ssh.

Kevin Meredith
źródło
1

Odkomentowałem część Vagrantfile w ten sposób:

  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

Uratowałem to, a potem zrobiłem

vagrant reload

a potem wszystko działało dobrze. Nie jestem jednak pewien, dlaczego to naprawiło.

Pavan Katepalli
źródło
0

Wpisz sudo /etc/init.d/vboxdrv setup. Powinno teraz działać.

Daniel
źródło
0

Mój problem polegał na tym

/etc/hosts

Miałem wejście

127.0.1.1 lucid32

gdzie jak nazwa mojej skrzynki lucidtest, zmieniłem powyższą linię na

127.0.1.1 lucidtest

i zadziałało.

Owais Lone
źródło
0

Ten komunikat sugeruje, że serwer ssh nie działa na maszynie wirtualnej. upewnij się, że jest zainstalowany

sudo apt-get install openssh-server

i bieganie

ssh localhost

nie powinien dawać błędu.

Aby wykluczyć błędy w włóczęgi, powinieneś spróbować ssh bezpośrednio do vm poprzez:

ssh vagrant @ localhost -p2222

(przy założeniu domyślnego przekierowania użytkownika i portu)

Viktor Trón
źródło
0

W systemie Windows 7 uruchom

vagrant ssh

jeśli dostaniesz coś takiego ...

`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

Więc powinieneś użyć czegoś takiego ...

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

Zauważ, że używam cygwina na moim oknie Windows zamiast Putty.

Artistan
źródło
OP nie korzysta z systemu Windows 7.
Tanner Faulkner
Dziękuję r.tanner.f - Nie określono systemu operacyjnego, pomogło mi to, mam nadzieję, że pomaga innym.
Artistan
Nie wiem, dlaczego zostałeś przegłosowany, wydaje się, że może to pomóc innym ludziom
Mark
0

Oto kolejny możliwy powód błędu:

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

Nazwę użytkownika można podać w pliku konfiguracyjnym w następujący sposób:

config.ssh.username = "badusername"

Jeśli ta nazwa użytkownika nie istnieje lub z jakiegoś powodu nie można się zalogować, ani Ty, ani Vagrant nie będziesz w stanie SSH na maszynie wirtualnej. W ten sposób Vagrant „nie nawiąże połączenia”, nawet jeśli maszyna wirtualna faktycznie działa i działa poprawnie.

SunSparc
źródło
0

Moim problemem było to, vagrant sshże w ogóle nic by to nie zrobiło.

Usunąłem ~/.ssh/configi problem został rozwiązany. Skopiuj gdzieś plik lub zmień jego nazwę, jeśli chcesz go zachować.

zMan
źródło
w systemie lokalnym czy zdalnym?
Jeremy Hajek,
0

Podobnie jak w przypadku innych, korzystałem z GUI (zawsze mam to włączone, aby zapobiec takim problemom)

config.vm.boot_mode = :gui

Następnie użyłem menu VirtualBox, ponieważ polecenia tutaj nie działały. Maszyna> Resetuj w menu, wtedy ssh był wtedy możliwy.

mahemoff
źródło
0

Zamknąłem działającą maszynę wirtualną i utworzyłem nowy basebox:

  1. Zamknij VM Próbuję wyeksportować
  2. vagrant package --base "salt-master basebox" --vagrantfile ./Vagrantfile
Zippy Zeppoli
źródło