Dasar-dasar SSH pada VM Vagrant

23

Saya sedang membangun mesin gelandangan (Ubuntu 12.04) dengan persyaratan berikut:

  • Akses SSH melalui Vagrant ke pengguna dengan sudo-privilege.

Saya telah membuat kunci publik / pribadi (via ssh-keygen) pada host dan telah memindahkan kunci publik ke authorized_keysfile pada tamu. Dan saya telah mencoba SSH tanpa kata sandi.

Beberapa hal terjadi, saya mengetik vagrant sshdengan kunci SSH yang didukung kata sandi:

  • Saya harus mengetikkan frasa kunci saya pada pada mesin host untuk SSH ke Guest VM.
  • Setiap kali saya mengetik frasa yang benar itu tidak diterima.

Yang mengakibatkan saya mendapatkan pesan kesalahan berikut:

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.

Kemudian saya mencoba kata sandi tanpa-ssh.

vagrant ssh
[email protected]'s password: 

??

Saya tidak pernah mengatur pengguna gelandangan! Seharusnya user@hostnameseperti yang saya mengaturnya dan dapat mengkonfirmasi bekerja ketika saya mem-boot VM di VirtualBox.

Bagaimana cara mendapatkan kunci ssh pribadi agar berfungsi dengan benar dengan gelandangan? Apa yang harus dilakukan pada tuan rumah, apa yang harus dilakukan pada tamu?

Memperbarui

Di VirtualBox, VM aktif tetapi saya tidak bisa melakukan perintah berikut dari gelandangan selain masalah dengan vagrant ssh:

vagrant up vagrant halt

Satu-satunya perintah gelandangan yang berfungsi adalah vagrant suspend. Ketika saya menggunakannya saya benar-benar dapat menghentikan mesin vagrant halt. Berikut ini hasilnya:

$ 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.
rhodee
sumber

Jawaban:

21

Saya menambahkan solusi ini untuk siapa saja yang datang ke utas ini:

Pertama buka file ini di mesin host:

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

Verifikasi yang config.ssh.private_key_pathdiatur ke file kunci pribadi Anda. Jika tidak perbarui itu

ssh ke kotak gelandangan dengan pwd default

$ vagrant ssh (default pwd = ‘vagrant’]

Sekali di dalam kotak:

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

Tambahkan kunci publik Anda ke file ini dan simpan file, dan keluar dari kotak

vagrant@lucid64:~$ exit

Kembali ke mesin lokal

$ vagrant halt
$ vagrant up

Ini berhasil untuk saya

Suchit Parikh
sumber
Terima kasih untuk ini - meskipun saya bertanya-tanya bagaimana jika mungkin untuk ssh ke dalam kotak sebagai pengguna berbeda dari vagrantdan menggunakan pasangan kunci pub / priv? Selanjutnya Anda dapat mengatur jalur ke kunci ssh pribadi yang diinginkan dari Vagrantfile seperti itu ?
rhodee
2
Saya tidak dapat menemukan folder 'sertakan'. Saya hanya menemukan folder 0, lalu virtualbox, kemudian 4 file - box.ovf, box-disk1.vmdk, metadata.json, Vagranfile. Ada ide apa yang harus dilakukan?
Darius.V
3

Saya memiliki masalah yang sama meskipun bukan karena masalah utama SSH. Saat memulai mesin, Virtualbox bekerja dan membawa tamu dengan baik. Saya bisa SSH ke mesin sendiri, danvagrant ssh bekerja meskipun meminta saya kata sandi. Saya masuk dan menemukan berikut ini di /var/log/auth.log pada tamu:

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

Saya masuk untuk melihat izin / rumah / gelandangan:

drwxrwxrwx  6 vagrant vagrant 4096 Feb 13 10:15 vagrant

Tidak bagus, hal lain yang telah saya lakukan telah secara tidak sengaja mengubah izin dir / home / gelandangan. Yang berikut memperbaiki masalah:

# chmod 755 vagrant

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

Setelah itu saya mematikan mesin, menyalakannya lagi dan gelandangan melakukan hal itu dengan baik. :-)

Sam Critchley
sumber
Tip yang bagus. Saya juga harus melakukanchmod -R 755 /home/vagrant/.ssh
wisbucky
2

Coba salin kunci publik tidak aman gelandangan ke file .ssh/authorized_keyske dalam kotak tamu.

Semoga ini bisa menyelesaikan masalah ssh Anda.

Jika Anda ingin membuatnya aman maka Anda dapat melakukannya dengan menyalin .ssh / id_rsa.pub Anda sendiri ke file yang disebutkan di atas. Dan pengaturan

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

di Vagrantfile Anda.

Gaurav Agarwal
sumber
2

Untuk siapa saja yang mendapatkan masalah ini. aku butuh waktu lama untuk memperbaikinya. (Namun perbaikannya mudah !!) Jadi, menurut dokumentasi Vagrant ada kata sandi default untuk pengguna 'gelandangan' yaitu 'gelandangan' tanpa tanda kutip tunggal. Anda dapat membaca lebih lanjut tentang hal yang sama di situs web resmi mereka http://docs.vagrantup.com/v2/boxes/base.html

Denn
sumber
2

Saya memiliki masalah serupa. Akhirnya saya menyelesaikannya dengan:

  • Memastikan Vagrant dan Virtualbox sama-sama terkini
  • Memastikan Tambahan Tamu VirtualBox terbaru dengan menginstal vagrant-vbguestpluginGitHub RubyGems :

    vagrant plugin install vagrant-vbguest
    
Flimm
sumber
0

Ikuti langkah-langkah untuk menyelesaikan masalah di Mac OS High Sierra: -

  1. Saya menggunakan Versi Gelandangan 5.X
  2. pertama-tama unduh kotak virtual dan jangan instal.
  3. Pergi ke System Preference -> privasi dan klik izinkan unduhan oleh Amerika ..
  4. Kunci perubahan di atas dan instal kotak virtual.
  5. Anda akan mendapatkan pesan instalasi berhasil dilakukan untuk kotak virtual Anda.
  6. Sekarang pergi ke terminal tipe vagrant ke atas - ketentuan
  7. Ini akan mulai menjalankan skrip jika Anda punya dan mengunduh kotak virtual untuk Anda. 8. Anda akan mendapatkan pesan 'Selesai'

  8. Pastikan kotak virtual diinstal dengan benar maka hanya menjalankan perintah gelandangan. Jika Anda menghadapi masalah un-install kotak virtual dengan menjalankan skrip uninstall yang datang dengan pkg dan coba instal lagi.

Dibayakyoti Nayak
sumber