Tidak dapat SSH menjadi Mesin Virtual Vagrant


11

Mesin Vagrant lokal dipasang di alamat IP 10.0.0.23dengan nama host lamp-vm.

Menggunakan vagrant sshperintah, saya dapat terhubung dengan baik dan melakukan semua yang saya butuhkan.

Ini menciptakan kesalahan

$ ssh gelandangan @ lamp-vm -v -v

debug1: terhubung ke alamat 10.0.0.23 port 22: Koneksi habis waktu
ssh: terhubung ke host-vm lampu port 22: Koneksi habis waktu

/etc/hostsFile saya mengandung 10.0.0.23 lamp-vm.

File .ssh / config saya terlihat seperti

Lampu host-vm
Pengguna gelandangan
IdentityFile ~ / .ssh / gelandangan

Saya telah mencoba perintah ssh dengan dan tanpa -i /path/to/.sh/identity_filejuga.

Bagaimana saya terhubung ke Mesin Virtual Vagrant saya menggunakan SSH?

Jawaban:


8

Saya menghadapi masalah ini juga dan ini adalah konfigurasi terakhir saya yang memungkinkan saya untuk ssh ke mesin gelran saya dari mana saja di mesin host saya.

Vagrantfile:

...
# Setting up private_network to have virtual host
config.vm.network :private_network, ip: "192.168.33.10"

# Enable ssh forward agent
config.ssh.forward_agent = true
...

ssh ke dalam mesin:

ssh vagrant@192.168.33.10

Anda akan dimintai kata sandi (standarnya adalah gelandangan):

vagrant@192.168.33.28's password:

Dan boom, Anda masuk!

PS * Anda dapat menggunakan scp juga di mana saja di mesin host Anda:

scp /path/to/src/file vagrant@192.168.33.10:/path/to/destination/file

Sementara ini berfungsi, ini cukup rapuh - saya menemukan bahwa Vagrantfile kami menyebabkan beberapa pengeditan ke / etc / network / interfaces pada VirtualBox VM, yang berarti koneksi SSH saya akan turun. Koneksi localhost ( ssh -p 2222 vagrant@localhost) tidak akan terpengaruh oleh ini.
RichVel

8

Itu sudah tua tetapi karena tidak ada jawaban, saya akan memberikan satu. Perintah:

vagrant ssh

Apakah setara dengan

ssh vagrant@localhost -p 2222 -i .vagrant/machines/default/virtualbox/private_key

Ini adalah perilaku default, jika Anda mengubah perintah perubahan sesuatu dengan tepat. Pertama-tama Vagrant akan membuat pengguna gelandangan di kotak tamu Anda, dan Anda akan menggunakan pengguna itu untuk ssh. Seperti yang dikatakan orang-orang sebelumnya, ini akan meneruskan lalu lintas dari port 2222 di host Anda ke port 22 pada tamu Anda, secara default (ketika Anda menggunakan gelandangan, Anda melihat pesan itu ditampilkan). Dan terakhir Vagrant menciptakan kunci untuk sesi ssh sehingga Anda tidak perlu, jadi Anda perlu memberikan kunci publik sebagai argumen saat koneksi melalui ssh.


Ini jawaban yang nyata dan benar! Bekerja tanpa masalah, dengan mobaxterm misalnya. Anda juga perlu menentukan path lengkap untuk private_key
sineverba

6

Perilaku ini adalah dengan desain.

Vagrant menggunakan mode NAT VirtualBox yang berarti menggunakan penerusan porta.

Anda tidak dapat SSH langsung ke VM Anda menggunakan mode NAT.

Menggunakan 'vagrant ssh' berarti gelandangan akan melakukan port forwarding untuk Anda sehingga Anda tidak perlu khawatir tentang hal itu. Saya pikir itu akan terhubung ke localhost pada port 2222 secara default tetapi akan mencoba juga memilah tabrakan nomor port.

Jika Anda perlu SSH langsung ke VM Anda, alihkan VM ke mode host-only atau bridged networking.


Terima kasih Philip, tetapi bagaimana saya akan menyelesaikannya? Maaf atas kurangnya pengalaman.
csi

1
Saya menggunakan mode hanya host dan masalahnya masih ada.
csi

Seharusnya jawaban yang diterima. Sangat membantu untuk memahami hal ini - pergi via localhost pada port 2222 adalah rute ke setup Vagrant yang berfungsi (untuk beberapa alasan saya tidak bisa mendapatkan kunci insecure_private_key untuk bekerja.) Saya menemukan bahwa standar 'kunci pribadi tidak aman' tidak berfungsi, jadi saya akhirnya menentukan kunci pribadi dan nama pengguna yang berbeda di Vagrantfile, tetapi bagian localhost port 2222 tidak perlu diubah.
RichVel


3

Windows / Vagrant / Ubuntu

Inilah yang bekerja untuk saya dan Anda dapat dengan cepat mencari tahu apakah ini akan berhasil dengan menjalankan ini pada klien ssh.

ssh vagrant@127.0.0.1 -p 2222 -v

-V akan meletakkannya dalam mode verbose dan menampilkan info debug ...

$ ssh vagrant@127.0.0.1 -p 2222 -v
OpenSSH_7.1p1, OpenSSL 1.0.2e 3 Des 2015
debug1: Menghubungkan ke 127.0.0.1 [127.0.0.1] port 2222.
debug1: Koneksi berhasil.
debug1: file identitas /home/Jamie/.ssh/id_rsa tipe 1
debug1: key_load_public: Tidak ada file atau direktori
debug1: file identitas /home/Jamie/.ssh/id_rsa-cert type -1
debug1: key_load_public: Tidak ada file atau direktori
debug1: file identitas /home/Jamie/.ssh/id_dsa tipe -1
debug1: key_load_public: Tidak ada file atau direktori
debug1: file identitas /home/Jamie/.ssh/id_dsa-cert type -1
debug1: key_load_public: Tidak ada
debug1 file atau direktori : file identitas / home / Jamie/.ssh/id_ecdsa tipe -1
debug1: key_load_public: Tidak ada file atau direktori tersebut
debug1: file identitas /home/Jamie/.ssh/id_ecdsa-cert type -1
debug1: key_load_public: Tidak ada file atau direktori
debug1: file identitas /home/Jamie/.ssh/id_ed25519 jenis -1
debug1: key_load_public: Tidak ada file atau direktori tersebut
debug1: file identitas /home/Jamie/.ssh/id_ed25519-cert type -1
debug1: Mengaktifkan mode kompatibilitas untuk protokol 2.0
debug1: string versi lokal SSH-2.0-OpenSSH_7.1
debug1 : Protokol jarak jauh versi 2.0, versi perangkat lunak jarak jauh OpenSSH_6.6.1p1 Ubuntu-2ubuntu2.6
debug1: kecocokan: OpenSSH_6.6.1p1 Ubuntu-2ubuntu2.6 pat OpenSSH_6.6.1 * compat 0x04000000
debug1: Otentikasi ke 127.0.0.1.12222 sebagai 'gelran' '
debug1: SSH2_MSG_KEXINIT mengirim
Koneksi ditutup oleh 127.0.0.1

Jadi ... SSH2_MSG_KEXINIT berarti kunci dipertukarkan. Ini tak lama gagal ...

Dalam hal ini, saya menghapus kunci saya dan membuat ulang mereka melakukan ini di VM. ( http://ask.xmodulo.com/sshd-error-could-not-load-host-key.html )

$ ls -al / etc / ssh / ssh kunci
$ sudo rm -r / etc / ssh / ssh
key
$ sudo dpkg-mengkonfigurasi ulang openssh-server

Setelah kunci saya diregenerasi, saya bisa memasukkan SSH ke dalam Vagrant Box saya.


0

Hancur mesin virtual
Reloaded mesin virtual
Semuanya berfungsi

Tidak yakin mengapa tetapi jelas ada sesuatu yang tidak dimuat dengan benar pada penyediaan pertama.


Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.