SSH para um VirtualBox local com o Ubuntu

1

Eu instalei uma imagem do servidor Ubuntu no VirtualBox. Em seguida, configurei o encaminhamento de porta 2222 = > 22.

Quando uso o seguinte comando, tudo funciona bem:

ssh -p 2222 [email protected]

A senha é solicitada e eu posso fazer o login no Ubuntu no VBox.

No entanto, quando eu uso:

ssh -p 2222 java@localhost

eu obtenho o seguinte

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY! Someone could be eavesdropping on you right now (man-in-the-middle attack)! It is also possible that a host key has just been changed. The fingerprint for the RSA key sent by the remote host is ......... Please contact your system administrator. Add correct host key in /Users/cristian/.ssh/known_hosts to get rid of this message. Offending RSA key in /Users/cristian/.ssh/known_hosts:2 RSA host key for [localhost]:2222 has changed and you have requested strict checking. Host key verification failed.

Claro

ping localhost PING localhost (127.0.0.1): 56 data bytes 64 bytes from 127.0.0.1: icmp_seq=0 ttl=64 time=0.038 ms

Alguma ideia do porquê?

Obrigado

    
por Cris 14.02.2015 / 13:48

2 respostas

1

minha solução alternativa para hosts locais que são muito reinstalados é configurar o ssh para que os IPs locais usem / dev / null para o arquivo hosts (perigoso, tenha cuidado).

    
por 14.02.2015 / 14:07
0

Apenas para reafirmar o problema (para esclarecer algumas questões nos comentários): A pergunta original indica que o NAT é usado, portanto, tanto o host que executa a VM quanto a própria VM são identificados pelo 127.0.0.1, conhecido como localhost. Assim, a partir do host, pode-se efetuar login na VM usando o encaminhamento de porta (indicado) mapeando a porta do host 2222 para a porta VM 22. Se tivermos várias VMs lançadas, todas com configuração de rede semelhante, ela aparecerá para o cliente ssh como o alvo está mudando (porque é).

Então, para a pergunta original, abordar o problema em questão: em vez de configurar ssh para usar /dev/null para o arquivo de hosts (o que poderia ser feito por host em ~/.ssh/config , especificamente para localhost), pode-se simplesmente atribuir às VMs um nome exclusivo no arquivo /etc/hosts e, em seguida, referenciá-las usando o nome do host, em vez de 127.0.0.1 ou localhost. Portanto, cada VM terá seu próprio nome no arquivo de hosts conhecidos do host. Por exemplo,

$ sudo vim /etc/hosts
...
127.0.0.1   localhost my_real_hostname
127.0.0.1   my_vm1
127.0.0.1   my_vm2
...

As novas VMs podem ser adicionadas conforme necessário (adicionando as VMs em uma única linha ou, em linhas separadas, o que pode facilitar a criação de scripts nas adições / exclusões via sed (um exercício deixado para o leitor) ).

Em seguida, para fazer login na VM, use o novo nome de host, que realmente é mapeado para 127.0.0.1 (novamente, supondo que o encaminhamento de porta esteja configurado nas configurações de rede avançadas do VirtualBox da máquina virtual),

$ ssh -p 2222 vm_user@my_vm2
The authenticity of host '[my_vm2]:2222 ([127.0.0.1]:2222)' can't be established.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '[my_vm2]:2222' to the list of known hosts.

E para removê-lo,

$ ssh-keygen -R '[my_vm2]:2222'
# Host [my_vm2]:2222 found: line 16
/home/user/.ssh/known_hosts updated.
Original contents retained as /home/user/.ssh/known_hosts.old

Note que o mesmo poderia ser feito (repetidamente) com o host local que estava causando o problema original,

$ ssh-keygen -R '[localhost]:2222'
# Host [localhost]:2222 found: line 16
/home/user/.ssh/known_hosts updated.
Original contents retained as /home/user/.ssh/known_hosts.old
    
por 20.09.2016 / 11:02