Я настроил переадресацию портов и разрешил исключение в брандмауэре, чтобы иметь возможность подключаться по протоколу SSH с моего хоста Linux Mint к гостевой системе Windows7/Cygwin.
#from linux host
hostuser@host$ ssh -p 2222 guestuser@localhost
Что мне нужно сделать, чтобы это работало и в обратную сторону?
#from cygwin guest (not working yet)
guestuser@guest$ ssh -p 2222 hostuser@localhost
решение1
Virtualbox имеет несколько сетевых режимов, которые вы можете выбрать для гостевых ВМ. Вы не указали, какой режим вы выбрали, но если вы выбрали 'NAT' (он используется по умолчанию и является самым популярным), вы не сможете подключиться по ssh из гостя к хосту. Поскольку нет маршрута из гостя к хосту.
Кроме того, ваша гостевая ОС не знает, что это виртуальная машина. Когда вы guestuser@guest$ ssh -p 2222 hostuser@localhost
говорите: ssh into localhost,гостьОС, порт 2222 и подключение к службе sshd, запущенной в гостевой ОС.
Если вы хотите, чтобы гостевая ОС могла подключаться к хостовой ОС, вам следует изменитьСетевой режим VB. Вероятно, вам понадобится режим «Мост». Здесь виртуальная машина действует как отдельный (физический) компьютер в вашей домашней сети. Она получит IP-адрес через DHCP. Затем вы можете подключаться по ssh с одного компьютера на другой, предполагая, что между ними нет правил брандмауэра или других «барьеров». В этом режиме нет переадресации портов; все ssh-подключения по умолчанию будут осуществляться через порт 22.
Пример
hostuser@host$ ssh [email protected]
guestuse@guest$ ssh [email protected]
Предположим, что IP-адрес хоста = 192.168.0.1, а IP-адрес гостя = 192.168.0.2.
Мнение: Если вы не настраиваете определенную службу на своем госте, то зачастую нет особой необходимости в том, чтобы гостевая ОС могла подключаться к своему хосту так, как вы спрашиваете. Я бы не стал тратить время на настройку этого.