SSH в VirtualBox Guest: соединение отклонено


21

Настроить

  • 64-разрядная ОС Windows 7 под управлением VirtualBox 4.2 с гостевой ОС Ubuntu 12.04.
  • Сервер OpenSSH установлен и работает ( локальный ssh -v локально подключается на гостевой машине).
  • Может ли SSH подключаться к внешним серверам (нет правила 22 для исходящего брандмауэра Windows, блокирующего порт 22)
  • Может пинговать IP гостя (192.168.56.101)

проблема

Используя PuTTY для SSH к IP гостевой ОС (192.168.56.101), PuTTY почти сразу возвращается

Ошибка сети: соединение отказано

Как я могу диагностировать и решить эту проблему?

Ответы:


10

Вы уверены, что IP для гостевой ОС. У меня была та же проблема, и оказалось, что IP, который я использовал все время, 192.168.56.101 на самом деле был IP-интерфейсом Windows, а IP-адрес операционной системы хоста был 192.168.56.103.

Вы можете проверить, выполнив ipconfig / ifconfig для обоих.

ПРИМЕЧАНИЕ. Я также настроил статический IP-адрес, который, как оказалось, мне вообще не нужен. Если вы попробуете с самого начала, я считаю, что этот урок лучше.


6
+1, по умолчанию VirtualBox создает гостя, виртуальный сетевой адаптер которого подключен через NAT через VirtualBox. Поэтому такой гость будет иметь возможность SSH из , и будет иметь возможность SSH сам , но он не сможет получить соединение SSH до правил Port Forwarding не были созданы в VirtualBox.
Горд Томпсон

+1 После 1 часа Google-беспорядка, наконец-то! Я думал, что .101 был гостем, а не хозяином!
Afr

6

Ни одно из других решений не является хорошим, потому что:

  1. Нет никакого смысла ssh для вашего гостя через мост, если гость потеряет доступ к Интернету
  2. Все остальные решения выше говорят вам построить ракету, чтобы перейти дорогу.

сценарий

  • Хост Ubuntu Desktop 16.04
  • Гостевой Ubuntu Server 16.04 (работает на виртуальной коробке 5)

проблема

SSH соединение отказано

Решение

  1. Выключите свой гость Ubuntu вниз
  2. В Virtualbox перейдите в «Настройки»> «Сеть»> «Адаптер1»> «Дополнительно»> «Переадресация портов».
  3. Имя = SSH Hostport = 2022 (или любой порт, кроме 22) Guestport (22)
  4. Перезагрузите своего гостя
  5. На вашем хосте откройте Putty или что вы используете для SSH
  6. ssh user@127.0.0.1 -p2022 (или любой порт, который вы указали в качестве hostport)
  7. Веселись ты в

у меня проблема с этим: В настройках Virtualbox> сеть> Adapter1> Advanced> Portforwarding отображается серым цветом и не активируется. imgur.com/seT3p02
SL5net

@ SL5net выключить виртуальную машину
Алон Гулдман

2

Следующие работы для меня:

Перед:

vboxnet0: 192.168.56.1
eth1:     192.168.56.1

После:

vboxnet0: 192.168.56.1
eth1:     192.168.56.101

Итак, в основном я изменил часть файла {/ etc / network / interfaces} следующим образом:

Перед:

auto eth1
iface eth1 inet static
address 192.168.56.1
netmask 255.255.255.0 

После:

auto eth1
iface eth1 inet static
address 192.168.56.101
netmask 255.255.255.0 

Работает: ssh username@192.168.56.101


Не знаю почему, это сработало для меня. Спасибо @Mause
murarisumit

2

Secure Shell (SSH) - это протокол для входа в систему и выполнения команд на удаленных компьютерах. Это обеспечивает безопасную зашифрованную связь. Если вы планируете получить удаленный доступ к вашей машине через SSH через межсетевой экран, включите эту опцию. Вам нужен установленный пакет openssh-server, чтобы эта опция была полезной.

Вот информация о том, что пакет openssh-serverдолжен быть установлен. После этого в гостевой системе и перезапуска виртуальной машины вы можете использовать ssh.


Я не перезагружал свою Ubuntu 16.04, и она все еще работала. Спасибо :)
Орен Мильман

1

Вы должны убедиться, что брандмауэр вашей гостевой ОС не блокирует входящие соединения через порт 22.


1
Брандмауэр гостевой ОС отключен. Это значение по умолчанию, и я убедился, что он отключен с помощью sudo ufw status.
Эрик Дж.

1

Может быть, это проблема с контролем доступа. Чтобы отключить его и разрешить полный доступ от имени пользователя root:

xhosts +

У меня была похожая проблема с VNC Viewer


1
Я действительно сомневаюсь, что IMHO sshd не имеет ничего общего с X - в отличие от vnc.
mpy

1

Проблема была решена включением DHCP-сервера на сетевом адаптере VirtualBox.

VirtualBox (последняя версия, версия 5) -> Файл -> Настройки -> Сеть -> Сети только для хоста (вкладка) -> Детали сетей только для хоста (инструмент Icon) -> DHCP-сервер

  1. Установите флажок Включить сервер
  2. Заполните IP-адрес
  3. ХОРОШО-ХОРОШО
  4. Перезагрузите виртуальную машину

Мои настройки для шага 2

  1. Адрес сервера: 192.168.56.100
  2. Маска сервера: 255.255.255.0
  3. Нижняя граница адреса: 192.168.56.101
  4. Верхний адрес: 192.168.56.200

1

Эй, я только возвращаюсь к первой странице, которую я нашел в моей мини-саге о поиске неисправностей и исследованиях, надеясь, что этот урок, который я сделал, может спасти кого-то еще от всех хлопот

Полное руководство по настройке сервера CentOS с Oracle VM:

Часть I - Настройка виртуальной машины

  1. Установите Oracle VM VirtualBox и пакет расширения здесь .
  2. Загрузите минимальную установку CentOS здесь .
  3. Для этого урока я использую клиент Ubuntu. ISO для этого можно найти здесь .
  4. Создайте сервер CentOS и ваши клиентские виртуальные машины.
  5. Настройте CentOS VM. а. Откройте Место установки и нажмите Назад. б. Перейдите в раздел Сеть и имя хоста, если вы хотите изменить имя хоста, которое я рекомендую. с. Не стесняйтесь настраивать элементы в разделе Локализация. Все остальное обрабатывается автоматически с помощью VirtualBox. д. Нажмите начать установку. е. Создайте как учетную запись root, так и обычную учетную запись. Убедитесь, что последний имеет права администратора. е. Когда панель загрузки заполнится, нажмите Reboot.
  6. Настройте свою клиентскую виртуальную машину. а. Установите гостевые дополнения VirtualBox.

Часть II - Конфигурация виртуальной сети

  1. В VirtualBox нажмите CTRL + W.
  2. Создайте новую хост-сеть. а. Если вы получаете сообщение об ошибке, это, вероятно, связано с тем, что на вашей хост-системе возникают проблемы с установкой драйверов VirtualBox. Вам нужно будет полностью удалить VirtualBox и переустановить последнюю версию. Обязательно запустите установку от имени администратора.
  3. На вкладке «Адаптер» выберите «Настройка адаптера вручную».
  4. Для Windows откройте командную строку и введите ipconfig.
  5. Прокрутите вывод, пока не найдете имя только что созданной сети хоста. Используйте этот IPv4-адрес и маску для конфигурации сети VirtualBox.
  6. Закройте диспетчер хост-сети.
  7. Откройте настройки вашей клиентской виртуальной машины. Под Сетью, Включите Адаптер 2, выберите Адаптер только для хоста, а затем имя является именем вашей только что созданной сети только для хоста.
  8. Повторите последний шаг для виртуальной машины вашего CentOS-сервера. Кроме того, перейдите в «Переадресация портов» адаптера 1 на вкладке «Дополнительно» и создайте новое правило. Установите порты хоста и гостя на 22.
  9. Перед закрытием расширенных настроек запишите MAC-адрес.

Часть III - Конфигурация сервера

  1. Запустите вашу CentOS VM.
  2. Run yum check-update, yum upgradeи yum clean all.
  3. Беги nmtui.
  4. Нажмите Enter над «Редактировать соединение».
  5. Вы должны увидеть «enp03s» и «Проводное соединение 1». а. Если у вас есть два варианта подключения, но вы не знаете, какой из них, перейдите к редактированию. Если значение устройства совпадает с MAC-адресом, указанным в разделе Адаптер 1 из Части II, то это ваше соединение NAT, в противном случае это ваше соединение только с хостом.
  6. Отредактируйте ваше соединение только с хостом: a. Установите для конфигурации IPv4 значение «Вручную». B. Показать конфигурацию IPv4 c. В VirtualBox нажмите CTRL + W. Рядом с именем вашей сети только для хоста вы должны увидеть комбинацию IP-адрес / маску в форме «[ip] / [mask]». На вашем сервере в конфигурации IPv4 это то, что вы будете вводить после нажатия <Add…>. д. Спуститесь и нажмите ОК.
  7. Убедитесь, что флажок «Автоматически подключаться» отмечен как для подключений только для хоста, так и для NAT.
  8. Навигация из nmtuiи reboot.

Часть IV - Настройка и использование клиента

  1. Загрузите свою клиентскую виртуальную машину.
  2. (необязательно) Отредактируйте файл / etc / hosts, добавив в него строку вида: [serv_ip_addr] [hostname] Где serv_ip_addr - это ip-адрес вашего сервера CentOS (второй вывод hostname -Iв вашем терминале CentOS). Это позволит вам использовать все, что вы выбрали для [hostname], взаимозаменяемо с IP-адресом вашего сервера. Обычно я просто устанавливаю это имя хоста, выбранное во второй части.
  3. Если до этого момента все работало, вы сможете подключиться [user]@[hostname]к серверу CentOS по ssh . Если это не так, возможно, вам придется установить openssh-clientи openssh-serverна свои машины.

Часть V - Обслуживание сайтов

  1. Это отличное руководство по размещению ваших собственных сайтов с настройками, как описано выше.

0

Мне пришлось решить эту проблему, добавив правило UFW для 2-го адаптера:

ufw allow in on enp0s8 to 192.168.56.101 port 22 proto tcp

где enp0s8 - это имя моего второго адаптера (на старых дистрибутивах Ubuntu это был eth1).


-1

В вашем окне Linux (VirtualBox Ubuntu) откройте терминал и введите следующую команду: sudo service ssh start

Попробуйте подключиться к нему снова после этого

Боже мой, я пропустил то, на что указал хроностай

ОК, иногда решения действительно просты. Недавно я столкнулся с той же проблемой с гостем Slackware на хосте Windows 7. Все, что мне нужно было сделать, это ifconfig eth'X 'и назначить IP 192.168.56.xxx подсеть 255.255.255.0 (если только хост-адаптер) на этой странице поиск "отказано в соединении ssh" ;-)


ОП заявил, что локальные соединения SSH работают, поэтому сервер работает.
Гроностай

-2

Возникла та же проблема, она была решена путем добавления виртуального жесткого диска в виртуальную машину, которой не было.


Это означает, что ваша проблема была другой. Если у вашей виртуальной машины не было жесткого диска, она не была загружена в операционную систему, а это была операционная система. Пожалуйста, внимательно прочитайте вопросы, чтобы убедиться, что вы понимаете их, прежде чем отвечать.
music2myear

Это не дает ответа на вопрос. Как только у вас будет достаточно репутации, вы сможете комментировать любой пост ; вместо этого предоставьте ответы, которые не требуют разъяснений от автора . - Из обзора
music2myear

Моя виртуальная машина была загружена в 32-битном ISO-файле Linux без дополнительного виртуального жесткого диска
Луи Гарчински,

Это означает, что вы запускали «живую» сессию Linux, что определенно не то, с чем имел дело OP. Мы рады, что вы решили свою проблему, но ваше решение не является решением или, в частности, даже близко к тому, что переживал OP.
music2myear

Вы абсолютно правы, я не осознавал, что проблема ОП была настолько конкретной. Тем не менее, учитывая, что я получил то же сообщение об ошибке, я оставлю здесь ответ, на тот случай, если кто-то с моей проблемой окажется здесь.
Луи Гарчински
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.