Podstawy SSH na maszynach wirtualnych

23

Buduję włóczęgę (Ubuntu 12.04) z następującymi wymaganiami:

  • Dostęp SSH przez Vagrant do użytkownika z uprawnieniami sudo.

Wygenerowałem klucze publiczne / prywatne (przez ssh-keygen) na hoście i przeniosłem klucz publiczny do authorized_keyspliku na gościu. I próbowałem SSH bez hasła.

Zdarza się kilka rzeczy, które vagrant sshwpisuję za pomocą kluczy SSH z włączonym hasłem:

  • Muszę wpisać moje hasło na maszynie hosta, aby SSH w maszynie wirtualnej gościa.
  • Za każdym razem, gdy wpisuję poprawne hasło, nie jest ono akceptowane.

Co powoduje, że otrzymuję następujący komunikat o błędzie:

SSH authentication failed! This is typically caused by the public/private
keypair for the SSH user not being properly set on the guest VM. Please
verify that the guest VM is setup with the proper public key, and that
the private key path for Vagrant is setup properly as well.

Potem spróbowałem ssh bez hasła.

vagrant ssh
[email protected]'s password: 

??

Nigdy nie zakładałem włóczęgi! Powinno być user@hostnametak, jak to skonfigurowałem i może potwierdzić, że uruchomię maszynę wirtualną w VirtualBox.

Jak uzyskać prywatne klucze ssh do poprawnej pracy z włóczęgą? Co robić u gospodarza, co robić u gościa?

Aktualizacja

W VirtualBox maszyna wirtualna jest aktywna, ale oprócz problemów z vagrant ssh: nie mogę wykonać żadnego z następujących poleceń z konsoli Vagrant :

vagrant up vagrant halt

Jedyne błędne polecenie, które działa, to vagrant suspend. Kiedy go używam, mogę zatrzymać maszynę vagrant halt. Oto wynik:

$ vagrant halt
[default] Attempting graceful shutdown of VM...
SSH authentication failed! This is typically caused by the public/private
keypair for the SSH user not being properly set on the guest VM. Please
verify that the guest VM is setup with the proper public key, and that
the private key path for Vagrant is setup properly as well.
rodee
źródło

Odpowiedzi:

21

Dodaję to rozwiązanie dla każdego, kto wejdzie do tego wątku:

Najpierw otwórz ten plik na komputerze hosta:

$ sudo vim ~/.vagrant.d/boxes/<yourbox>/include/_Vagrantfile

Sprawdź, config.ssh.private_key_pathczy ustawiony jest plik klucza prywatnego. Jeśli nie, zaktualizuj to

ssh do vagrant box z domyślnym pwd

$ vagrant ssh (default pwd = ‘vagrant’]

Raz w pudełku:

vagrant@lucid64:~$ sudo visudo -f .ssh/authorized_keys

Dodaj swój klucz publiczny do tego pliku i zapisz plik i zamknij okno

vagrant@lucid64:~$ exit

Powrót do komputera lokalnego

$ vagrant halt
$ vagrant up

To zadziałało dla mnie

Suchit Parikh
źródło
Dzięki za to - zastanawiam się jednak, co zrobić, jeśli możliwe jest ssh do skrzynki jako użytkownik inny niż vagrantpara kluczy pub / priv? Ponadto możesz ustawić ścieżkę do pożądanego prywatnego klucza ssh z pliku Vagrantfile tak ?
rhodee
2
Nie mogę znaleźć folderu „dołącz”. Po prostu znajduję folder 0, następnie virtualbox, a następnie 4 pliki - box.ovf, box-disk1.vmdk, metadata.json, Vagranfile. Jakieś pomysły, co robić?
Darius.V
3

Miałem ten sam problem, chociaż nie było to spowodowane kluczowymi problemami SSH. Podczas uruchamiania maszyny Virtualbox działał i dobrze gościł. Byłem w stanie sam włączyć SSH do maszyny i vagrant sshdziałałem, chociaż poprosiło mnie o hasło. Zalogowałem się i znalazłem następujące informacje w /var/log/auth.log na gościu:

Feb 13 10:14:34 spaaza-dev sshd[1468]: Accepted password for vagrant from 192.168.50.1 port 61816 ssh2
Feb 13 10:14:34 spaaza-dev sshd[1468]: pam_unix(sshd:session): session opened for user vagrant by (uid=0)
Feb 13 10:14:34 spaaza-dev sshd[1636]: Received disconnect from 192.168.50.1: 11: disconnected by user
Feb 13 10:14:34 spaaza-dev sshd[1468]: pam_unix(sshd:session): session closed for user vagrant
Feb 13 10:16:44 spaaza-dev sshd[1764]: Authentication refused: bad ownership or modes for directory /home/vagrant

Poszedłem sprawdzić uprawnienia dla / home / vagrant:

drwxrwxrwx  6 vagrant vagrant 4096 Feb 13 10:15 vagrant

Nie dobrze, coś innego, co robiłem, nieumyślnie zmieniło uprawnienia katalogu / home / vagrant. Następujące rozwiązało problem:

# chmod 755 vagrant

drwxr-xr-x  6 vagrant vagrant 4096 Feb 13 10:15 vagrant

Następnie wyłączyłem maszynę, uruchomiłem ją ponownie i włóczęga zrobił wszystko dobrze. :-)

Sam Critchley
źródło
Dobra wskazówka. Musiałem też zrobićchmod -R 755 /home/vagrant/.ssh
szczęśliwy
2

Spróbuj skopiować niepewny niepewny klucz publiczny do pliku .ssh/authorized_keysw polu gościa.

Mam nadzieję, że to rozwiąże problem z ssh.

Jeśli chcesz go zabezpieczyć, możesz to zrobić, kopiując własny plik .ssh / id_rsa.pub do wyżej wspomnianego pliku. I ustawienie

config.ssh.private_key_path = '~ / .ssh / id_rsa'

w twoim pliku Vagrantfile.

Gaurav Agarwal
źródło
2

Dla każdego, kto ma ten problem. Naprawdę zajęło mi wieki. (Jednak poprawka jest łatwa !!) Tak więc, zgodnie z dokumentacją Vagrant istnieje domyślne hasło dla użytkownika „włóczęga”, który jest „włóczęga” bez pojedynczych cudzysłowów. więcej na ten temat można przeczytać na ich oficjalnej stronie internetowej http://docs.vagrantup.com/v2/boxes/base.html

Denn
źródło
2

Miałem podobne problemy. W końcu rozwiązałem to przez:

  • Sprawdzanie, czy Vagrant i Virtualbox są aktualne
  • Upewnij się, że dodatki gości VirtualBox były aktualne, instalując vagrant-vbguestwtyczkę :GitHub RubyGems

    vagrant plugin install vagrant-vbguest
    
Flimm
źródło
0

Postępuj zgodnie z instrukcjami, aby rozwiązać problem w Mac OS High Sierra: -

  1. Korzystam z wersji Vagrant 5.X.
  2. po pierwsze pobierz wirtualne pudełko i nie instaluj go.
  3. Przejdź do Preferencji systemowych -> prywatność i kliknij opcję Zezwalaj na pobieranie przez Amerykę.
  4. Zablokuj powyższe zmiany i zainstaluj wirtualne pudełko.
  5. Otrzymasz komunikat o pomyślnym zakończeniu instalacji dla wirtualnego urządzenia.
  6. Teraz przejdź do terminalu typu włóczęga w górę - poprawka
  7. Rozpocznie się uruchamianie skryptów, jeśli je masz, i pobierz wirtualną skrzynkę dla siebie. 8. Otrzymasz komunikat „Gotowe”

  8. Upewnij się, że wirtualna skrzynka jest poprawnie zainstalowana, a następnie uruchom tylko polecenie Vagrant. jeśli napotkasz problem, odinstaluj wirtualne pudełko, uruchamiając skrypt dezinstalacyjny dostarczany z pkg i spróbuj zainstalować ponownie.

Dibyajyoti Nayak
źródło