Установка Ubuntu Server
на виртуальную машину Virtualbox
и настройка SSH сервера.

Практически любому веб-разработчику, рано или поздно, приходится сталкиваться с веб серверами. Даже если Вы работаете в достаточно крупной компании и за работу с сервером отвечает специально обученный человек, знать как устроен сервер все равно не будет лишним.

Сегодня мы установим сервер Ubuntu на виртуальную машину и у Вас появиться возможность с ним поэкспериментировать. Установить, например, Node.js или базу данных. Установить NGINX, Apache, изменить настройки и т.д.

Для этого совершенно не обязательно тратить деньги и покупать место у хостера.

1. Подготовка к установке.

Для начала скачаем и установим виртуальную машину VirtualBox, сам сервер Ubuntu и программы для связи с нашим сервером. Если у Вас система Windows и установлен PowerShell, то достаточно скачать и установить WinSCP, если PowerShell не установлен, то нужно будет скачать PuTTY. Для систем Linux дополнительных программ не требуется. К сожалению для MacOS подсказать не смогу.

Здесь будет рассмотрена установка и настройка Ubuntu Server 18.04 на Windows. Однако установка и настройка на другие системы отличается только способом подключения к SSH серверу.

Какой сервер Ubuntu выбрать, решать Вам. !8.04 устанавливают абсолютно все хостеры, 20.04 – не факт. Но на Ubuntu Server 20.04 без танцев с бубнами по умолчанию ставится Python 3.8. И устанавливается MySQL 8. Хотя для тренировки подойдет любая.

2. Установка Ubuntu Server

Запускаем VirtualBox, заходим в "Файл" -> "Менеджер сетей хоста" и проверяем, чтобы настройки совпадали с теми, что на скриншоте ниже. По умолчанию они должны быть именно такими. Если нет - настраиваем.

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

Теперь нужно указать место хранения виртуальной машины. Я предпочитаю хранить подобные вещи не на системном диске. Жмем на иконку папки и выбираем желаемый диск и директорию. Имя оставляем по умолчанию ubuntu.

Ниже предлагается указать максимальный размер виртуального диска. Дело в том, что динамический виртуальный диск подразумевает не бесконечное расширение, а то, что занимать он будет столько, сколько в нем записано. Но не больше, чем мы укажем при его создании. Поэтому зададим нашему диску гигов 20. Для обучения, думаю, хватит. Можете задать больше.

Нажимаем "Создать". Далее жмем кнопку "Настроить" и выбираем вкладку Сеть. Первый адаптер оставляем без изменений. Заходим во вкладку "Адаптер 2", включаем его и выбираем "Виртуальный адаптер хоста". Жмем "ОК".

Теперь нажимаем кнопку "Запустить". Появмться окно выбора установочного диска. Жмем на кнопку с папкой, далее "Добавить" и выбираем скачанный образ Ubuntu Server. Жмем "продолжить".

Начнется установка сервера. Выбираем Английский язык, выбираем обновление во время установки и затем везде кликаем [Done].

Для перехода между пунктами используем клавишу Tab. Для выбора "Continue" используем стрелку вниз.

Указываем свое имя, имя сервера, имя пользователя, под которым будете заходить и пароль пользователя. Подтверждаем пароль пользователя. Далее обязательно отмечаем установку OpenSSH Server. Для этого нажимаем клавишу Пробел. В поле установки дополнений ничего не выбираем и не нажимаем "Cancel update and reboot". Установка обновлений может занять достаточно много времени. Ждем.

Дожидаемся надписи "Reboot" и жмем Enter. Затем установщик просит изьять установочный диск. Заходим в "Устройства" -> "Оптические диски" и кликаем по ubuntu 18.04 (или 20.04 в зависимоти от того, какую редакцию устанавливаете). Снова заходим в "Устройства" -> "Оптические диски" и нажимаем "Изъять диск из привода". Жмем Enter, дожидаемся перезагрузки сервера и когда потребует - вводим логин и пароль. Пароль при вводе не отображается!

На этом установка Ubuntu Server закончена. Дальше будем настраивать.

3. Настраиваем подключение по SSH

Для начала создадим пароль для пользователя "ROOT". Это пользователь Ubuntu, который имеет расширенные права (аналогично пользователю "Администратор" в Windows). Для этого вводим:

sudo passwd

Необходимо будет ввести свой пароль, затем ввести новый пароль для рута и подтвердить новый пароль.

Теперь разрешим руту входить по SSH. Для этого отредактируем файл sshd_config. Вводим:

sudo nano /etc/ssh/sshd_config

Возможно потребуется ввести свой пароль (не рута!). Находим строчку #PermitRootLogin prohibit-password, раскомментируем ее и заменяем prohibit-password на yes

разрешим руту входить по SSH

Нажимаем CTRL-X -> Y -> Enter. Перезапускаем SSH сервер:

sudo service ssh restart

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

sudo ifconfig enp0s8 192.168.56.101

Проверяем. Набираем ifconfig и видим подлючение enp0s8

подлючение enp0s8

Теперь открываем PowerShell и подключаемся к нашему серверу (если PowerShell то устанавливаем PuTTY и используем его):

ssh root@192.168.56.101

В перый раз при входе на незнакомый адрес, PowerShell спросит разрешения. Пишем Yes. Вводим пароль рута и заходим на сервер.

PowerShell подключаемся к серверу

Дальше настроим подключение с помощью WinSCP. Открываем программу, выбираем "Новое подключение", протокол передачи SFTP, Имя хоста вводим 192.168.56.101, порт оставляем 22, имя пользователя - root, пароль - наш пароль рута. Нажимаем "Сохранить", ставим галку "запомнить пароль" вводим имя подключения или оставляем как есть и жмем "ОК". Дальше нажимаем "Войти" и как и в PowerShell при первом запуске спросит разрешение для подключения к неизвестному серверу. Разрешаем.

подключение с помощью WinSCP

Теперь настроим для WinSCP внешний редактор кода. Для этого заходим "Параметры" -> "Настройки" -> "Редакторы" и нажимаем "Добавить". Выбираем "Внешний редактор -> "Обзор" и находим свой редактор кода. Я для этих целей использую VS Code (C:\Program Files\Microsoft VS Code\code.exe). Вы можете использовать любой, к какому привыкли. Например Notepad++ или Sublime Text. Не советую для этих целей использовать IDE. Слишком долго грузиться будет. Выбираем, нажимаем "ОК", смотрим, чтобы редактор появился в списке, перемещаем его вверх одноименной кнопкой и снова "ОК".

внешний редактор кода WinSCP

Теперь увеличим время жизни сессии SSH. Если определенное время, при подключении по SSH, не производить никаких действий, то подключение прерывается. И потом приходится подключаться заново. Порой это раздражает. Поэтому время жизни сессии я рекомендую увеличить.

При входе на сервер мы попадаем в директорию "root". Выходим из нее (кликаем по папке с двумя точками), заходим в папку "etc" -> "ssh" и открываем файл sshd_config.

Пролистываем файл вниз и добавляем следующие строчки:

TCPKeepAlive yes
ClientAliveInterval 300
ClientAliveCountMax 60

Как на изображении ниже.

увеличим время жизни сессии SSH

Сохраняем файл и закрываем редактор. Возвращаемся в PowerShell и перезапускаем SSH сервер:

sudo service ssh restart

Если мы вошли как root пользователь то слово sudo можно не писать.

Следующим шагом мы настроим постоянное подключение enp0s8. Для этого возвращаемся в WinSCP, выходим из папки ssh и заходим в netplan (/etc/netplan). Открываем файл 00-installer-config.yaml и прописываем следующие строчки:

enp0s8:
  dhcp4: no
  addresses: [192.168.56.101/24]

В результате файл должен выглядеть так:

настроим постоянное подключение enp0s8

Сохраняем файл и закрываем редактор. Закрываем WinSCP. Возвращаемся в PowerShell и набираем reboot чтобы перезапустить наш сервер. Позле перезапуска снова входим по SSH для проверки.

На этом установка и первоначальная настройка Ubuntu Server закончена.