SSH a VirtualBox Mac Host Linux Guest usando NAT

Cómo configurar el host ssh OS X con un invitado de Linux, para poder acceder a mi sistema operativo invitado a través de SSH. He intentado:

invitado virtualbox

Pero cuando intenté hacer ssh desde el host, falló:

> ssh localhost
ssh: connect to host localhost port 22: Connection refused

Intenté configurar la ip (host 10.0.0.10, invitado 10.0.2.15) en el port forwarding, da el mismo resultado. Intenté vincular el host a una dirección más alta (2222), pero no tuve suerte, el host aún no escucha en el puerto de reenvío de puertos. No funciona como esta respuesta: VirtualBox Host ssh to Guest

Ni siquiera pude hacer ping al invitado desde el host:

PING 10.0.2.15 (10.0.2.15): 56 data bytes
Request timeout for icmp_seq 0
Request timeout for icmp_seq 1
Request timeout for icmp_seq 2
^C
--- 10.0.2.15 ping statistics ---
4 packets transmitted, 0 packets received, 100.0% packet loss

Pero el ping funciona bien de invitado a host, ssh de invitado a host local también está bien, PermitRootLoginel yesresultado netstates correcto:

invitado de netstat

EDITAR después de cambiar al modo puente, funciona bien.

¡No está claro lo que quieres lograr! Su primer intento reenvía cualquier host-vb:22 a guest:22 desde la red del host. Esto significa que no puede acceder al host desde otros hosts en la red host-vb (probablemente 10.0.0.0/24). ¿Es este tu objetivo?
Quiero conectarme a mi sistema operativo invitado, lo intenté sin el reenvío de puertos, falló, con el reenvío de puertos también falló, pero cuando cambio al modo puente, funciona bien.
A menos que estuviera ejecutando VirtualBox como un usuario privilegiado, no debería permitirle usar el puerto 22 del host. Debería usar un número más alto como en el ejemplo al que se vinculó.

Respuestas (1)

Después de agregar una regla de reenvío de puertos (p. ej. SSH TCP 10.0.0.10 2222 10.0.2.15 22), ingrese en la Terminal.app del host:

 ssh user_name@host-ip -p forwarded_port

Ejemplo con la regla anterior:

 ssh user_name@10.0.0.10 -p 2222

No use puertos idénticos en la regla (puerto del host ≠ puerto del invitado) como en su captura de pantalla. user_name tiene que ser el nombre de una cuenta habilitada para acceso remoto en el sistema operativo invitado.

Incluso puede omitir las direcciones IP (10.0.0.10 y 10.0.2.15) en la regla y usar:

 ssh user_name@10.0.0.10 -p 2222

o

 ssh user_name@127.0.0.1 -p 2222

o incluso

 ssh user_name@localhost -p 2222
Ignore la edición que hice de forma anónima, que señaló que también se puede usar:ssh user_name@localhost -p 2222