SSH между двумя гостями Virtualbox
На моем ноутбуке я использую два сервера Ubuntu в качестве гостей в virtualbox. Они подключаются через адаптер только для хоста, который имеет IP-адрес "192.168.56.1", а два гостевых сервера имеют IP-адреса "192.168.56.101" и "192.168.56.102". Каждый может пинговать другого, но не ssh в него. Когда я пытаюсь ssh к другому гостю, я получаю следующую ошибку:
ssh: connection to host 192.168.56.102 port 22: Connection refused
Смущает (во всяком случае, для меня) то, что я могу использовать ssh в адаптере только для хоста на хост-ноутбуке, используя:
ssh user@192.168.56.1
Я не уверен, что попробовать дальше. Я попытался переустановить SSH / SSHD. Это просто дало мне кучу ошибок, но я думаю, что если я смогу ssh-то в сети, я должен быть в состоянии ssh-то, верно? Но в любом случае я определенно что-то упускаю.
Я пытался отключить iptables на гостях и хосте, используя
sudo ufw disable
Затем использовали один из гостей
ssh user@192.168.56.102
и получил
ssh: connect to host 192.268.56.101 port 22: Connection refused
<-update->
ssh -v user@192.168.56.101
Дает ли мне следующий вывод:
OpenSSH_5.9p1 Debian-5ubuntu1, OpenSSL1.0.1 14 Mar 1012
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 19: Applying options for *
debug1: Connecting to 192.168.56.101 [192.268.56.101] port 22.
debug1: connect to address 192.168.56.101 port 22: Connection refused
ssh: connect to host 192.168.56.101 port 22: Connection refused
<-update->
Мой файл / etc / hosts выглядит так:
127.0.0.1 localhost
127.0.1.1 ubuntu
# The following lines are desirable for IPv6 capable hosts
::1 ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
Два гостевых ящика не имеют файлов /etc/hosts.allow & /etc/hosts.deny.
ifconfig -a дает мне:
eth0 Link encap:Ethernet HWaddr 08:00:27:63:c5:71
inet addr:192.168.56.102 Bcast:192.168.56.255 Mask:255.255.255.0
inet6 addr: fe80::a00:27ff:fe63:c571/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:15 errors:0 dropped:0 overruns:0 frame:0
TX packets:15 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:4658 (4.6 KB) TX bytes:1790 (1.7 KB)
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
а также
eth0 Link encap:Ethernet HWaddr 08:00:27:ce:7c:1e
inet addr:192.168.56.101 Bcast:192.168.56.255 Mask:255.255.255.0
inet6 addr: fe80::a00:27ff:fece:7c1e/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:16 errors:0 dropped:0 overruns:0 frame:0
TX packets:15 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:4718 (4.7 KB) TX bytes:1790 (1.7 KB)
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:16 errors:0 dropped:0 overruns:0 frame:0
TX packets:16 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:1184 (1.1 KB) TX bytes:1184 (1.1 KB)
<-update->
sudo netstat -pant |grep :22
Не дает вывода
<-update->
Также, когда я пытаюсь получить сам ящик SSH, я получаю тот же порт 22: ошибка соединения отклонена.
4 ответа
Из-за того, что вы получаете отклоненное сообщение, я могу предположить, что вы действительно видите пакеты, попадающие на другой сервер, я подозреваю, что ssh не установлен.
На обоих серверах запускаем:
sudo apt-get install openssh-server
Как только сервер ssh установлен, он должен работать нормально.
<- Правка ->
Я видел, что вы подтвердили, что служба установлена, поэтому не обращайте внимания на вышесказанное, вполне возможно, что это iptables, хотя его не следует настраивать по умолчанию в Ubuntu. Если вы используете 12.04, вы можете временно отключить брандмауэр, набрав:
sudo ufw disable
Посмотрим, поможет ли это вообще.
Кроме того, под "полным беспорядком ошибок", что вы имеете в виду? Вы пытались установить с или без sudo?
Попробуйте использовать IP-адрес ssh -v, чтобы вы могли увидеть, что может быть не так во время соединения!
<< - РЕДАКТИРОВАТЬ - >>
используйте эту команду на хосте 101 и опубликуйте результат
sudo netstat -plant | grep ssh
в основном, эта команда показывает все сетевые соединения на вашей машине, и я хочу увидеть, работает ли ssh на другом порту по отношению к 22
Вы уверены, что в вашем файле ssh_config нет прокси-команды или чего-то подобного?
Если посмотреть на ваш вывод, есть проблема с IP-адресом в вашем отладочном выводе и в сообщении об ошибке: вместо 192.168.xxx.xxx у вас есть 192.268.xxx.xxx
Вы должны проверить конфигурацию вашей сети:
- что выводится команда "ifconfig -a" на каждом хосте?
- Вы можете проверить свой файл / etc / hosts?
- Можете ли вы проверить, есть ли что-то в ваших файлах /etc/hosts.allow и /etc/hosts.deny
- ... и, конечно, как и предполагалось, вы можете отключить iptables
Я считаю, что опция "только для хоста" создает выделенную связь между гостем и сервером, и виртуальные машины, использующие соединения только для хоста, не должны видеть друг друга в сети.
Вам придется либо соединить их в Linux, либо использовать другой сетевой вариант.
Я полагаю, что то, что вы пытаетесь достичь, может быть сделано, если вы измените параметр сети обеих виртуальных машин на "Внутренняя сеть" и используете одинаковое имя для обеих виртуальных машин.
Редактирование: в соответствии с документацией о виртуальной коробке опция "только для хоста" должна позволять виртуальным машинам взаимодействовать друг с другом, но все же - попробовать.
Edit2: О - я как бы пропустил тот факт, что машины могут пинговать друг друга. В этом случае то, что я написал выше, не имеет значения.