Como posso ssh em um convidado do ubuntu - executando em um host win10 - de um servidor linux remoto?

10

Versão curta

Se eu estiver executando uma VM VirtualBox convidada do Ubuntu a partir de um host do Windows 10, que etapas eu preciso seguir para sshum servidor linux remoto na VM convidada do Ubuntu?


_______________________
[                     ]
[ Windows 10          ]
[ ___________________ ]            ____________________
[ [                  ]]            [                   ]
[ [ Ubuntu VM (guest) <----HOW?---- SUSE remote server ]
[ [__________________]]            [___________________]
[_____________________]

Versão longa

Estou confuso porque, AFAIK, se eu não estivesse usando uma VM convidada do Ubuntu e, em vez disso, estivesse usando uma máquina Ubuntu real, eu poderia apenas cat /etc/hostsencontrar o endereço IP local e, em seguida, remotamente:

user@remote --ssh--> user@<local IP>

Eu já configurei as teclas ssh para poder ssh do convidado do Ubuntu no servidor remoto do SUSE (ou seja, o convidado ~/.ssh/id_rsa.pubjá está armazenado no controle remoto ~/.ssh/authorized_keys). Ou seja, eu já posso:

ssh -Y user@remote

Sem dificuldade, mas não posso fazer o contrário, simplesmente porque não faço ideia do endereço IP do meu convidado. E eu já tentei sshusar os endereços IP em "Informações da conexão" da GUI do Ubuntu.

Também para ficar claro:

  • A VM convidada é o Ubuntu 12.04 LTS (64 bits)

  • Configurações do VirtualBox principalmente: padrão

  • Ativar adaptador de rede: NAT (cabo conectado, sem encaminhamento de porta)

Não configurei um servidor ssh, mas não tenho certeza de que seja necessário (?), Esse é o meu entendimento até agora.

Portanto, como estou executando uma VM VirtualBox convidada do Ubuntu a partir de um host do Windows 10, que etapas eu preciso seguir para sshum servidor linux remoto na VM convidada do Ubuntu?

hello_there_andy
fonte

Respostas:

14

Isso geralmente é chamado de situação de "NAT duplo" quando você está atrás de um roteador. Você precisa encaminhar do roteador de borda para o sistema Windows e, em seguida, encaminhar no VBox para a VM. Talvez você também precise encaminhar a porta 22 da conexão de rede real para o adaptador NAT VBox, mas não sou tão claro sobre isso no Windows.

Em última análise, porém, há no máximo três coisas que você terá que fazer aqui. Eles estão todos no Windows, ou não no Ubuntu Linux, então a maioria das suas respostas estará no Superusuário ou em outro lugar.

  1. (Se você estiver atrás de um roteador na rede com o Win10 ativado) Configure o Port Forwarding no roteador na rede para encaminhar a Porta 22 para o sistema Windows 10.

  2. Defina o Firewall do Windows para permitir conexões de entrada na Porta 22. Você também pode precisar especificar que deseja que a Porta 22 seja encaminhada do seu adaptador de rede de entrada para a rede NAT nas configurações de rede da VM.

  3. Defina a regra de encaminhamento de NAT na rede NAT no VirtualBox para encaminhar a porta 22 no host para a porta 22 na VM .

Uma abordagem um pouco mais agradável que ignora as Etapas 2 e 3 aqui é usar o Modo de ponte nas configurações de rede da VM; isso obterá um IP da mesma rede à qual o sistema Windows 10 está conectado e você poderá portar a porta 22 de encaminhamento no roteador de borda (etapa 1) para o IP atribuído pela rede à própria VM. Isso é um pouco menos doloroso do que ter que fazer vários saltos e configurações para obter a porta 22 funcionando.

NOTA: Alguns ISPs filtram a Porta 22 para que o tráfego da Porta 22 não chegue ao sistema; pode ser necessário configurar uma porta mais alta que a porta 22 (como 2022 ou outra porta não padrão> 1024), se esse for o caso.


Quanto à localização do IP do convidado, essa informação estará na saída ifconfig -aou ip -4 addr listno convidado do Linux. Essa é a parte mais fácil de tudo isso, porque será a mesma, Bridged ou NAT.

Thomas Ward
fonte
Vou pesquisar isso graças, eu realmente não sei como você respondeu tão rapidamente ... irá apagar este comentário depois de pesquisar
hello_there_andy
1
@hello_there_andy Faço muita virtualização no meu laptop, por meio de contêineres LXC / LXD baseados em Linux em uma configuração de NAT ou por meio do VMware, com males semelhantes ao NAT (basicamente, estou acostumado a esse conjunto de problemas, heh). O processo é semelhante no Linux e no Windows, mas completamente diferente em termos de etapas, embora, nos meus casos, minhas VMs nunca precisem de fora -> dentro; para essas VMs, eu as coloco em um hipervisor ESXi dedicado, que é uma máquina dedicada à execução de VMs, e direciono-a diretamente para uma configuração Ethernet existente (sem NAT, heh). Mas essa é uma configuração atípica, é claro.
Thomas Ward
1
@hello_there_andy apenas verifique se o convidado também foi openssh-serverinstalado - para que você possa aceitar o SSH. Fora isso, o resto são coisas de rede / firewall / configuração do Windows. (Daí, Super User e não Ask Ubuntu)
Thomas Ward
3

Você precisará definir port forwardingemWindows 10 VM player

Você precisará configurar a porta externa no Windows 10 máquina, que será em frente ao service portno virtual machineno NAT network.

Este link explica como fazê-lo

Yaron
fonte
1
Embora isso possa, teoricamente, responder à pergunta, as respostas apenas para links são geralmente desaprovadas. Seria preferível incluir informações relevantes de postagens vinculadas, caso essas postagens desapareçam em algum momento no futuro.
Thomas Ward
Obrigado pelo comentário e por fornecer os detalhes em sua resposta.
Yaron