SSH bir Vagrant Sanal Makineye girilemiyor


11

Yerel Serseri makine IP adresinde kurulu 10.0.0.23hostname'iyle lamp-vm.

vagrant sshKomutu kullanarak , sadece iyi bağlanabilir ve ihtiyacım olan her şeyi yapabilirim.

Bu bir hata oluşturur

$ ssh vagrant @ lamba-vm -v -v

debug1: adrese bağlanma 10.0.0.23 port 22: Bağlantı zaman aşımına uğradı
ssh: ana lambaya bağlanma-vm port 22: Bağlantı zaman aşımına uğradı

Benim /etc/hostsdosya içeriyor 10.0.0.23 lamp-vm.

.Ssh / config dosyam şöyle görünüyor

Host lamp-vm
Kullanıcı vagrant
IdentityFile ~ / .ssh / vagrant

Ben ve ssh komutunu da denedim -i /path/to/.sh/identity_file.

SSH kullanarak Vagrant Sanal Makineme nasıl bağlanabilirim?

Yanıtlar:


8

Ben de bu problemle karşı karşıya kaldım ve bu benim ana makinemde herhangi bir yerden vagrant makineme ssh izin veren son yapılandırmamdı.

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 içine makine:

ssh vagrant@192.168.33.10

Şifre istenir (varsayılan değer vagrant):

vagrant@192.168.33.28's password:

Ve patlama, sen varsın!

PS * scp'yi ana makinenizde herhangi bir yerde kullanabilirsiniz:

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

Bu çalışırken, oldukça kırılgan - Vagrantfile'ımızın VirtualBox VM'de / etc / network / arayüzlerinde bazı düzenlemelere neden olduğunu gördüm, bu da SSH bağlantımın düşeceği anlamına geliyordu. Bir localhost bağlantısı ( ssh -p 2222 vagrant@localhost) bundan etkilenmeyecektir.
RichVel

8

Eski ama cevap olmadığı için bir tane vereceğim. Komut:

vagrant ssh

Eşdeğeri

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

Değişiklik komutunu uygun şekilde değiştirdiyseniz, bu varsayılan davranıştır. Her şeyden önce Vagrant konuk kutunuzda vagrant kullanıcısı oluşturacak ve o kullanıcıyı ssh olarak kullanacaksınız. Önceki kişilerin söylediği gibi, varsayılan olarak ana makinenizdeki 2222 numaralı bağlantı noktasından misafirinizdeki 22 numaralı bağlantı noktasına trafik iletecektir (vagrant'ı kullandığınızda, bu iletinin görüntülendiğini görürsünüz). Ve son olarak Vagrant ssh oturumu için anahtarlar oluşturur, bu yüzden yapmanız gerekmez, bu yüzden ssh üzerinden bağlantı yaparken argüman olarak ortak anahtar sağlamanız gerekir.


Bu gerçek ve doğru cevap! Örneğin mobaxterm ile sorunsuz çalışır.
Private_key

6

Bu davranış tasarım gereğidir.

Vagrant, port yönlendirme kullanmak anlamına gelen VirtualBox NAT modunu kullanır .

NAT modunu kullanarak doğrudan VM'nize SSH yapamazsınız.

'Vagrant ssh' kullanmak, vagrant'ın bağlantı noktası yönlendirmesini sizin için yapacağı anlamına gelir, böylece endişelenmenize gerek kalmaz. Varsayılan olarak 2222 numaralı bağlantı noktasında localhost'a bağlanacağını düşünüyorum, ancak herhangi bir bağlantı noktası numarası çarpışmasını da sıralamaya çalışacak.

Doğrudan VM'nize SSH bağlamanız gerekiyorsa, VM'yi yalnızca ana makine veya köprülü ağ moduna geçirin.


Teşekkürler Philip ama bunu nasıl çözebilirim? Acemilik için özür dilerim.
csi

1
Yalnızca ana bilgisayar modunu kullanıyorum ve sorun devam ediyor.
csi

Kabul edilen cevap olmalı. Bunu anlamak için çok yararlı - 2222 numaralı bağlantı noktasında localhost üzerinden çalışan bir Vagrant kurulumuna giden yol oldu (nedense henüz insecure_private_key anahtarını çalıştıramadım.) Standart 'güvensiz özel anahtarın' Bu yüzden, Vagrantfile'da farklı bir özel anahtar ve kullanıcı adı belirledim, ancak localhost port 2222 bölümünün değişmesine gerek yoktu.
RichVel


3

Windows / Vagrant / Ubuntu

Benim için işe yarayan budur ve bunu ssh istemcisinde çalıştırarak bunun işe yarayıp yaramayacağını hemen anlayabilirsiniz.

ssh vagrant@127.0.0.1 -p 2222 -v

-V, ayrıntılı moda koyar ve hata ayıklama bilgilerini görüntüler ...

$ ssh vagrant@127.0.0.1 -p 2222 -v
OpenSSH_7.1p1, OpenSSL 1.0.2e 3 Aralık 2015
hata ayıklama1: 127.0.0.1 [127.0.0.1] bağlantı noktası 2222'ye
bağlanma. hata ayıklama1: Bağlantı kuruldu.
debug1: kimlik dosyası /home/Jamie/.ssh/id_rsa tip 1
debug1: key_load_public: Böyle bir dosya veya dizin yok
debug1: kimlik dosyası /home/Jamie/.ssh/id_rsa-cert tip -1
debug1: key_load_public: Böyle bir dosya yok veya dizin
debug1: kimlik dosyası /home/Jamie/.ssh/id_dsa tip -1
debug1: key_load_public: Böyle bir dosya veya dizin
debug1: kimlik dosyası /home/Jamie/.ssh/id_dsa-cert tip -1
debug1: key_load_public: Hayır dosya veya dizin
hata ayıklama1: kimlik dosyası /home/Jamie/.ssh/id_ecdsa tip -1
debug1: key_load_public: Böyle bir dosya veya dizin yok
debug1: kimlik dosyası /home/Jamie/.ssh/id_ecdsa-cert type -1
debug1: key_load_public: Böyle bir dosya veya dizin yok
debug1: kimlik dosyası /home/Jamie/.ssh/id_ed25519 type -1
debug1: key_load_public: Böyle bir dosya veya dizin yok
debug1: kimlik dosyası /home/Jamie/.ssh/id_ed25519-cert type -1
debug1: Protokol 2.0
hata ayıklama1 için uyumluluk modunu etkinleştirme : Yerel sürüm dizesi SSH-2.0-OpenSSH_7.1
debug1 : Uzak protokol sürüm 2.0, uzak yazılım sürümü OpenSSH_6.6.1p1 Ubuntu-2ubuntu2.6 hata
ayıklama1: eşleme: OpenSSH_6.6.1p1 Ubuntu-2ubuntu2.6 pat OpenSSH_6.6.1 * uyumlu
0x04000000 hata ayıklama1: 'vagrant olarak 127.0.0.1:2222 olarak kimlik doğrulaması '
debug1: SSH2_MSG_KEXINIT gönderildi
Bağlantı 127.0.0.1 tarafından kapandı

Yani ... SSH2_MSG_KEXINIT anahtarların değiş tokuş edildiği anlamına gelir. Bu kısa sürede başarısız oluyor ...

Bu durumda, anahtarlarımı sildim ve bunları VM'de yaparak yeniden oluşturdum. ( http://ask.xmodulo.com/sshd-error-could-not-load-host-key.html )

$ ls -al / etc / ssh / ssh anahtar
$ sudo rm -r / etc / ssh / ssh
anahtar
$ sudo dpkg-reconfigure openssh-server

Anahtarlarım yeniden oluşturulduktan sonra Vagrant Kutuma SSH yapabildim.


0

Sanal makineyi yok etti Sanal makineyi yeniden
yükledi
Her şey çalıştı

Emin değilim ama belli bir şey ilk provizyonda düzgün yüklenmedi.


Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.