Гид по технологиям

Как подключиться по SSH к Ubuntu, запущенному в VirtualBox

• 6 min read • Инструкции • Обновлено 30 Nov 2025
SSH к Ubuntu в VirtualBox — настройка и безопасность
SSH к Ubuntu в VirtualBox — настройка и безопасность

Настройка SSH на Ubuntu, работающей в VirtualBox.jpg?w=1600&h=900&fit=crop)

Виртуальные машины удобны для тестирования ПО, настройки окружений и оптимального использования серверного железа. VirtualBox — популярный open-source гипервизор с множеством функций. В этой статье описано, как подключиться по SSH к Ubuntu, запущенной внутри VirtualBox, и как сделать это безопасно.

Что понадобится

  • Гостевая ОС: Ubuntu Server или Desktop внутри VirtualBox.
  • Хост: компьютер, с которого вы будете подключаться по SSH.
  • Права администратора (sudo) в гостевой системе.

Краткое определение: SSH — безопасный протокол удалённого доступа, позволяющий запускать команды и передавать файлы между машинами.

Шаг 1 — Установка SSH на гостевую Ubuntu

SSH-сервер (openssh-server) должен быть установлен и запущен на гостевой ОС. На хосте нужен SSH-клиент (обычно уже установлен в Linux/macOS; на Windows можно использовать PuTTY или встроенный OpenSSH).

  1. Запустите виртуальную машину в VirtualBox.
  2. Откройте терминал на гостевой Ubuntu и выполните:
sudo apt update
sudo apt install openssh-server
  1. Служба SSH обычно запускается автоматически. Проверьте статус:
sudo systemctl status ssh

Вывод статуса службы SSH в Ubuntu

  1. Если на гостевой системе включён брандмауэр UFW, разрешите порт SSH (22):
sudo ufw allow 22/tcp
sudo ufw reload

Примечание: на время настройки можно временно открыть порт, но в финальной конфигурации рассмотрите ограничение доступа по IP и использование ключей.

Шаг 2 — Настройка сети VirtualBox (порт-форвардинг для NAT)

По умолчанию VirtualBox создаёт NAT-адаптер для ВМ. NAT даёт интернет из гостя, но скрывает гостя от внешних подключений. Чтобы подключаться по SSH с хоста, используйте перенаправление портов (Port Forwarding).

  1. В менеджере VirtualBox нажмите правой кнопкой на виртуальную машину → Settings (Настройки) или выделите VM и нажмите Ctrl + S.
  2. Перейдите в раздел «Сеть».

Выбор настроек сети в VirtualBox

  1. Разверните «Advanced» и нажмите «Port Forwarding».

Настройка правил перенаправления портов в VirtualBox

  1. Нажмите на плюс (+) и добавьте правило:

    • Name: SSH (или любое удобное имя)
    • Protocol: TCP
    • Host IP: 127.0.0.1 (localhost) — если хотите доступ только с хоста
    • Host Port: 2222 (или другой свободный порт на хосте)
    • Guest IP: IP гостя (например, 10.0.2.15) — можно оставить пустым для любого
    • Guest Port: 22
  2. Нажмите OK и, при необходимости, перезапустите VM.

Совет: оставьте Host IP пустым, если нужно разрешить подключения с других машин в вашей сети (но только если так безопасно).

Альтернативный вариант — мостовой адаптер (Bridged)

Если вы хотите, чтобы гость получил IP в той же сети, что и хост, переключите интерфейс на Bridged Adapter. Тогда гость будет доступен по своему IP и SSH можно будет вызывать напрямую на 22 порту без форвардинга. Этот вариант проще при наличии локальной сети, но требует сетевой конфигурации и может повлиять на безопасность.

Шаг 3 — Подключение по SSH с хоста

На хосте используйте команду, где Host Port — тот, что указали (например, 2222):

ssh -p 2222 @127.0.0.1

Например:

ssh -p 2222 mwizak@127.0.0.1

Введите пароль пользователя гостя при запросе.

Важно: замените mwizak на реальное имя пользователя гостевой Ubuntu.

Проверка и отладка

Если подключение не проходит, проверьте по шагам:

  • На госте: sudo systemctl status ssh — служба активна?
  • На госте: sudo ss -tlnp | grep :22 — слушает ли порт 22?
  • На хосте: nc -zv 127.0.0.1 2222 — тест соединения к локальному порту форварда.
  • Убедитесь, что VirtualBox использует NAT и правило порт-форвардинга настроено для правильной VM.
  • Если Guest IP указан в правиле, проверьте, что это актуальный IP гостя (ip addr show).

Краткие команды для диагностики на госте:

ip a
sudo ss -tlnp | grep ssh
sudo journalctl -u ssh -e
sudo ufw status verbose

Безопасность: рекомендации и жёсткие настройки

SSH безопасен по умолчанию, но он — цель атак. Рекомендации:

  • Используйте ключи SSH (public/private) и отключите аутентификацию по паролю.
    • На клиенте: ssh-keygen -t ed25519
    • Скопировать ключ на гость: ssh-copy-id -p 2222 user@127.0.0.1
  • Запретите вход для root: в /etc/ssh/sshd_config выставьте PermitRootLogin no
  • Отключите пароли: PasswordAuthentication no (после установки ключей!)
  • Ограничьте доступ по IP через ufw: sudo ufw allow from 192.168.1.0/24 to any port 22
  • Установите fail2ban для защиты от брутфорса: sudo apt install fail2ban
  • Меняйте стандартный порт только как дополнительная мера (security by obscurity не заменит ключи и firewall).

Пример базовой конфигурации /etc/ssh/sshd_config (только ключевые параметры):

Port 22
PermitRootLogin no
PasswordAuthentication no
ChallengeResponseAuthentication no
UsePAM yes
AllowUsers youruser

После изменений перезапустите SSH: sudo systemctl restart ssh

Мини-руководство: быстрый чек-лист для подключения

  1. Установить openssh-server в госте.
  2. Убедиться, что sshd запущен.
  3. Настроить Port Forwarding (HostPort 2222 → GuestPort 22) при NAT.
  4. На хосте выполнить ssh -p 2222 user@127.0.0.1.
  5. Настроить ключи и отключить парольную аутентификацию.
  6. Включить fail2ban и сузить правила ufw.

Критерии приёмки

  • SSH-соединение устанавливается с хоста за 5 секунд после ввода команды.
  • Вход по паролю отключён, доступ по ключу работает.
  • Служба ssh активна и слушает порт 22 в госте.
  • Port forwarding корректно перенаправляет порт хоста на гостя.

Тестовые сценарии (acceptance)

  1. Успешное подключение с парой ключей: клиент хранит private key, а публичный ключ есть в ~/.ssh/authorized_keys на госте.
  2. Попытка входа по паролю при отключённой PasswordAuthentication завершается отказом.
  3. При перезапуске VM правило порт-форвардинга сохраняется и работает.
  4. fail2ban блокирует несколько подряд неудачных попыток логина.

Частые ошибки и их решения

  • “Connection refused” — sshd не запущен или порт неправилен. Проверьте sudo systemctl status ssh и ss -tlnp.
  • “Connection timed out” — проблема с сетевой конфигурацией VirtualBox или брандмауэром на хосте/госте.
  • Неправильный Guest IP в правиле форварда — оставьте поле пустым или укажите текущий IP гостя.

Когда стоит использовать Bridged вместо NAT

  • Нужно, чтобы гость был видим в локальной сети (например, для тестирования сетевых сервисов с других устройств).
  • Bridged даёт гостьу IP от DHCP вашей сети, но требует контроля доступа и повышения внимания к безопасности.

Ролевые чек-листы

Администратор:

  • Установил openssh-server
  • Настроил ufw и fail2ban
  • Отключил root и парольную аутентификацию
  • Проверил журналы на предмет неудачных логинов

Разработчик:

  • Сгенерировал ключи
  • Поместил публичный ключ в гостевой ~/.ssh/authorized_keys
  • Тестировал подключение и передачу файлов (scp, rsync)

Мини-методология миграции на ключи SSH

  1. Сгенерировать ключ на клиенте (ssh-keygen).
  2. Скопировать публичный ключ на гостя (ssh-copy-id или вручную).
  3. Проверить логин с ключа.
  4. Отключить PasswordAuthentication в sshd_config.
  5. Мониторить логи и fail2ban.

Быстрая шпаргалка команд

  • Установка SSH: sudo apt install openssh-server
  • Статус: sudo systemctl status ssh
  • Проверить порт: sudo ss -tlnp | grep :22
  • Открыть порт в UFW: sudo ufw allow 22/tcp
  • Перезапуск SSH: sudo systemctl restart ssh

Риски и меры смягчения

  • Риск: брутфорс — мера: fail2ban + ключи + ограничение по IP
  • Риск: уязвимости в SSH-версии — мера: обновление пакетов и мониторинг CVE
  • Риск: неправильный форвард портов — мера: документировать правила и хранить их в конфигурации VM

Короткое резюме

SSH к гостевой Ubuntu в VirtualBox настраивается за несколько шагов: установить openssh-server, настроить port forwarding (или bridged), подключиться по нужному порту и обязательно защитить соединение ключами и брандмауэром. Применяйте чек-листы и тестовые сценарии, чтобы убедиться, что доступ корректен и безопасен.

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

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Несколько аккаунтов Skype: Multi Skype Launcher
Программное обеспечение

Несколько аккаунтов Skype: Multi Skype Launcher

Журнал для работы: повысить продуктивность
Productivity

Журнал для работы: повысить продуктивность

Персональные звуки уведомлений на Android
Android.

Персональные звуки уведомлений на Android

Скачивание шоу Hulu для офлайн‑просмотра
Стриминг

Скачивание шоу Hulu для офлайн‑просмотра

Microsoft Start: персонализированная новостная лента
Новости

Microsoft Start: персонализированная новостная лента

Как изменить имя в Epic Games быстро
Гайды

Как изменить имя в Epic Games быстро