Não é possível SSH em uma máquina virtual Vagrant

9

Máquina local do Vagrant instalada no endereço IP 10.0.0.23 com hostname lamp-vm .

Usando o comando vagrant ssh , posso me conectar bem e fazer tudo que preciso.

Isso cria um erro

$ ssh vagrant@lamp-vm -v -v

debug1: connect to address 10.0.0.23 port 22: Connection timed out
ssh: connect to host lamp-vm port 22: Connection timed out

Meu arquivo /etc/hosts contém 10.0.0.23 lamp-vm .

Meu arquivo .ssh / config parece

Host lamp-vm
User vagrant
IdentityFile ~/.ssh/vagrant

Eu tentei o comando ssh com e sem o -i /path/to/.sh/identity_file também.

Como eu me conecto à minha máquina virtual Vagrant usando o SSH?

    
por csi 23.10.2012 / 18:25

7 respostas

8

Também enfrentei esse problema e esta foi minha configuração final que me permitiu acessar minha máquina vaga de qualquer lugar em minha máquina host.

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 na máquina:

ssh [email protected]

Você será solicitado a fornecer uma senha (o padrão é vagrant):

[email protected]'s password:

E boom, você está dentro!

PS * Você também pode usar o scp em qualquer lugar em sua máquina host:

scp /path/to/src/file [email protected]:/path/to/destination/file
    
por 09.07.2014 / 04:24
6

Esse comportamento é por design.

O Vagrant usa o modo NAT VirtualBox , o que significa usar o encaminhamento de porta.

Você não pode executar o SSH diretamente na sua VM usando o modo NAT.

Usar 'srant vagrant' significa que o vagrant fará o encaminhamento de porta para você, para que você não tenha que se preocupar com isso. Eu acho que ele irá se conectar ao localhost na porta 2222 por padrão, mas ele tentará também classificar as colisões de número de porta.

Se você precisar do SSH diretamente na sua VM, mude a VM para o modo de rede somente de host ou em ponte.

    
por 23.10.2012 / 18:37
5

Eu teria adicionado isso como um comentário, mas atualmente não tenho representante suficiente para isso. Escrevi um tutorial para configurar sua VM para o modo de ponte aqui:

link

Espero que você ache isso útil!

    
por 23.10.2012 / 20:13
3

Windows / Vagrant / Ubuntu

Isso é o que funcionou para mim e você pode descobrir rapidamente se isso funcionará executando isso no cliente ssh.

ssh [email protected] -p 2222 -v

O -v irá colocá-lo no modo detalhado e exibir informações de depuração ...

$ ssh [email protected] -p 2222 -v
OpenSSH_7.1p1, OpenSSL 1.0.2e 3 Dec 2015
debug1: Connecting to 127.0.0.1 [127.0.0.1] port 2222.
debug1: Connection established.
debug1: identity file /home/Jamie/.ssh/id_rsa type 1
debug1: key_load_public: No such file or directory
debug1: identity file /home/Jamie/.ssh/id_rsa-cert type -1
debug1: key_load_public: No such file or directory
debug1: identity file /home/Jamie/.ssh/id_dsa type -1
debug1: key_load_public: No such file or directory
debug1: identity file /home/Jamie/.ssh/id_dsa-cert type -1
debug1: key_load_public: No such file or directory
debug1: identity file /home/Jamie/.ssh/id_ecdsa type -1
debug1: key_load_public: No such file or directory
debug1: identity file /home/Jamie/.ssh/id_ecdsa-cert type -1
debug1: key_load_public: No such file or directory
debug1: identity file /home/Jamie/.ssh/id_ed25519 type -1
debug1: key_load_public: No such file or directory
debug1: identity file /home/Jamie/.ssh/id_ed25519-cert type -1
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_7.1
debug1: Remote protocol version 2.0, remote software version OpenSSH_6.6.1p1 Ubuntu-2ubuntu2.6
debug1: match: OpenSSH_6.6.1p1 Ubuntu-2ubuntu2.6 pat OpenSSH_6.6.1* compat 0x04000000
debug1: Authenticating to 127.0.0.1:2222 as 'vagrant'
debug1: SSH2_MSG_KEXINIT sent
Connection closed by 127.0.0.1

Então ... SSH2_MSG_KEXINIT significa que as chaves estão sendo trocadas. Isso em breve falha ...

Neste caso, eu apaguei as minhas chaves e as regenerei fazendo isso na VM. ( link )

tecla

$ ls -al / etc / ssh / ssh
Tecla $ sudo rm -r / etc / ssh / ssh

$ sudo dpkg-reconfigure openssh-server

Uma vez que minhas chaves foram regeneradas, consegui conectar o SSH na minha Vagrant Box.

    
por 18.02.2016 / 06:27
3

É velho, mas como não há resposta, eu vou fornecer um. Comando:

vagrant ssh

é o equivalente de

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

Este é o comportamento padrão, se você alterou o comando de alteração de forma apropriada. Primeiro de tudo, o Vagrant criará um usuário vagabundo na sua caixa de convidados, e você usará esse usuário para o ssh. Como disse o pessoal anterior, por padrão, o tráfego da porta 2222 em seu host para a porta 22 em seu convidado (quando você usa vagrant up, você vê essa mensagem sendo exibida). E por último o Vagrant cria chaves para a sessão ssh, então você não precisa, então você precisa fornecer a chave pública como argumento quando a conexão via ssh.

    
por 04.08.2016 / 15:35
0

Destruiu a máquina virtual
Recarregou a máquina virtual
Tudo funcionou

Não sei por que, mas obviamente algo não foi carregado corretamente no primeiro provisionamento.

    
por 23.10.2012 / 19:20
0

Confira este comentário: link

Basicamente, mesmo quando usando redes privadas, o vagrant ainda faz o ssh em 127.0.0.1. Tente o comando ssh @ 127.0.0.1 em vez do seu ip / hostname privado.

    
por 29.10.2013 / 15:15