Virtualbox имеет несколько сетевых режимов, которые вы можете выбрать для гостевых виртуальных машин. Вы не указали, какой режим вы выбрали, но если вы выбрали «NAT» (это по умолчанию и самый популярный), вы не сможете выполнить ssh от гостя к хосту. Потому что нет маршрута от гостя к хозяину.
Кроме того, ваша гостевая ОС не знает, что это виртуальная машина. Когда вы guestuser@guest$ ssh -p 2222 hostuser@localhost
вы говорите: ssh на localhost, гостевая ОС, порт 2222 и подключитесь к службе sshd, работающей на гостевой ОС.
Если вы хотите, чтобы гостевая ОС могла подключаться к хост-ОС, вам следует изменить сетевой режим VB. Возможно, вам понадобится режим «Мост». Здесь виртуальная машина действует как отдельный (физический) компьютер в вашей домашней сети. Он получит IP-адрес через DHCP. Затем вы можете переходить от одного к другому, предполагая, что между ними нет правил брандмауэра или других «барьеров». В этом режиме переадресация портов отсутствует; по умолчанию все соединения ssh будут через порт 22.
пример
hostuser@host$ ssh guestuser@192.168.0.2
guestuse@guest$ ssh hostuser@192.168.0.1
Предполагая, что IP-адрес хоста = 192.168.0.1 и IP-адрес гостя = 192.168.0.2
Мнение: Если вы не настраиваете конкретную службу для своего гостя, гостевой ОС часто не требуется возможность подключать свой хост в соответствии с тем, о чем вы спрашиваете. Я бы не стал переживать за это.