Несмотря на огромный объем работы, которую VirtualBox проделал, чтобы упростить этот процесс, я просто не могу заставить его работать должным образом.
Цель: иметь возможность запускать виртуальную машину VirtualBox без головы, к которой я могу подключиться по SSH с главного компьютера.
Текущее сообщение об ошибке при попытке SSH с хоста на гостя:
$ ssh -p 2222 user@localhost
ssh_exchange_identification: Connection closed by remote host
SSH отлично работает на гостевой виртуальной машине, и я, гость, могу без проблем использовать SSH для себя. Я почти уверен, что проблема заключается в перенаправлении соединения от хоста к гостю, потому что мои попытки SSH к гостю даже не отображаются в файлах журнала SSH гостя. Таким образом, соединения никогда не должны доходить до машины.
Текущая конфигурация VirtualBox:
Я использовал два основных метода переадресации портов через NAT VB, как описано в руководстве по VBox и на различных форумах. Я использовал 'старый' способ:
$ VBoxManage setextradata "VM Name Here" \
"VBoxInternal/Devices/e1000/0/LUN#0/Config/guestssh/Protocol" TCP
$ VBoxManage setextradata "VM Name Here" \
"VBoxInternal/Devices/e1000/0/LUN#0/Config/guestssh/GuestPort" 22
$ VBoxManage setextradata "VM Name Here” \
"VBoxInternal/Devices/e1000/0/LUN#0/Config/guestssh/HostPort" 2222
Как и «новый» способ, от Руководство VBox:
VBoxManage modifyvm "VM name" --natpf1 "guestssh,tcp,,2222,,22"
Я знаю, что первый набор команд вступил в силу, потому что я вижу их в XML-файле конфигурации * .vbox для виртуальной машины, и я знаю, что вторая команда сработала, потому что когда я смотрю на:
VBox --> (Select VM) --> Settings --> Networking --> Advanced --> Port Forwarding
Я вижу созданное мной определение переадресации порта «guestssh» в диалоговом окне.
Кроме того, я добавил строку:
sshd:ALL
к гостевому файлу /etc/hosts.allow, и ни на хосте, ни на гостевой системе не работают брандмауэры.
Хост - Ubuntu 11.04. Гость - Fedora 16. VirtualBox - это версия 4.1.0 r73009.
У кого-нибудь есть идеи?
[Решено]
Ладно, ну, очевидно, проблема была в гостевой виртуальной машине, что касается брандмауэра:
1) iptables -L showed that everything was set to 'ALLOW'
2) Looking at the Firewall GUI, SSH was allowed through
3) I had disabled the Firewall from the GUI
Ни один из них не решил проблему.
$ sudo systemctl stop iptables.service
Тоже не решила. НО:
$ sudo systemctl disable iptables.service
Сделал, наконец, исправил. Это кажется невероятно жестким, но все остальное не помогло. Я не уверен, была ли это ошибка или что-то в этом роде, но теперь она работает.