¿Cómo puedo ingresar a un invitado de Ubuntu, que se ejecuta en un host win10, desde un servidor Linux remoto?

10

Version corta

Si estoy ejecutando una VM VirtualBox invitada de Ubuntu desde un host Windows 10, ¿qué pasos debo seguir sshdesde un servidor Linux remoto a la VM invitada de Ubuntu?


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

Versión larga

Estoy confundido porque, AFAIK si no estaba usando una máquina virtual invitada de Ubuntu, y en su lugar estaba usando una máquina Ubuntu real, podría simplemente cat /etc/hostsencontrar la dirección IP local y luego remota:

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

Ya configuré las claves ssh para poder enviar ssh desde el invitado de Ubuntu al servidor remoto SUSE (es decir, el invitado ~/.ssh/id_rsa.pubya está almacenado en el remoto ~/.ssh/authorized_keys). Es decir, ya puedo:

ssh -Y user@remote

Sin dificultad, pero no puedo hacerlo al revés simplemente porque no tengo idea de cuál es la dirección IP de mi invitado. Y ya probé sshcon las direcciones IP en "Información de conexión" desde la GUI de Ubuntu.

También para ser claro:

  • VM invitada es Ubuntu 12.04 LTS (64 bits)

  • Configuración de VirtualBox principalmente: predeterminada

  • Habilitar adaptador de red: NAT (cable conectado, sin reenvío de puertos)

No he configurado un servidor ssh, pero no estoy seguro de que sea necesario (?), Este es mi entendimiento hasta ahora.

Entonces, dado que estoy ejecutando una VM VirtualBox invitada de Ubuntu desde un host de Windows 10, ¿qué pasos debo seguir sshdesde un servidor Linux remoto a la VM invitada de Ubuntu?

hola_aquí_andy
fuente

Respuestas:

14

Esto generalmente se llama una situación de "doble NAT" cuando estás detrás de un enrutador. Debe reenviar desde el enrutador de borde al sistema de Windows y luego reenviar en VBox a la VM. Es posible que también deba reenviar el puerto 22 desde la conexión de red real al adaptador NAT VBox, pero no lo tengo tan claro para Windows.

En última instancia, sin embargo, hay como máximo tres cosas que tendrás que hacer aquí. Todos están en Windows, o no en Ubuntu Linux, por lo que la mayoría de sus respuestas estarán en Super Usuario o en otro lugar.

  1. (Si está detrás de un enrutador en su red en el que está activado Win10) Configure el reenvío de puertos en su enrutador en la red para reenviar el puerto 22 a su sistema Windows 10.

  2. Configure el Firewall de Windows para permitir conexiones entrantes en el Puerto 22. También puede necesitar especificar que desea que el Puerto 22 sea reenviado desde su adaptador de red entrante a la red NAT en la configuración de red de VM.

  3. Establezca la regla de reenvío NAT en la red NAT en VirtualBox para reenviar el puerto 22 en el host al puerto 22 en la máquina virtual .

Un enfoque un poco más agradable que pasa por alto el Paso 2 y el Paso 3 aquí es usar el Modo Puente en la configuración de red de VM; esto obtendrá una IP de la misma red a la que está conectado el sistema Windows 10, y luego puede transferir el puerto 22 en el enrutador de borde (paso # 1) a la IP asignada por la red a la VM. Esto es un poco menos doloroso que tener que hacer múltiples saltos y configuraciones para que el puerto 22 funcione.

NOTA: Algunos ISP filtran el puerto 22 para que el tráfico del puerto 22 no llegue al sistema; es posible que tenga que configurar un puerto más alto que el Puerto 22 (como 2022 u otro puerto no estándar> 1024) si este es el caso.


En cuanto a encontrar la IP del invitado, esa información estará en la salida ifconfig -ao ip -4 addr listen el invitado de Linux. Esa es la parte más fácil de todo esto, porque será lo mismo, Bridged o NAT.

Thomas Ward
fuente
Investigaré esto gracias, realmente no sé cómo respondiste tan rápido ... Eliminaré este comentario después de investigar
hello_there_andy
1
@hello_there_andy Realizo mucha virtualización en mi computadora portátil, ya sea a través de contenedores LXC / LXD basados ​​en Linux en una configuración NAT o VMware, con males similares a NAT (básicamente, estoy acostumbrado a este conjunto de problemas, je). El proceso es similar en Linux y Windows, pero completamente diferente en términos de pasos, aunque en mis casos mis máquinas virtuales nunca necesitan afuera -> adentro; para esas máquinas virtuales, las puse en un hipervisor ESXi dedicado que es una máquina dedicada a ejecutar máquinas virtuales, y lo conecto directamente a una configuración de Ethernet existente (no hay NAT, heh). Pero esa es una configuración atípica, por supuesto.
Thomas Ward
1
@hello_there_andy solo asegúrate de que el invitado también lo haya openssh-serverinstalado, para que puedas aceptar SSH. Fuera de eso, el resto es material de red / firewall / configuración de Windows. (Por lo tanto, Super Usuario y no Preguntar Ubuntu)
Thomas Ward
3

Tendrá que establecer port forwardingenWindows 10 VM player

Usted tendrá que configurar el puerto externo en Windows 10 máquina, que será con interés la service porten la virtual machineen el NAT network.

Este enlace explica cómo hacerlo

Yaron
fuente
1
Si bien esto puede responder teóricamente a la pregunta, las respuestas de solo enlace generalmente están mal vistas. Es preferible que incluya información relevante de las publicaciones vinculadas, en caso de que dichas publicaciones desaparezcan en algún momento en el futuro.
Thomas Ward
Gracias por el comentario y por proporcionar los detalles en su respuesta.
Yaron