В этой статье мы подробно разберём, как установить и настроить SSH на сервере с Ubuntu. Вы узнаете, как установить OpenSSH, проверить корректность работы сервиса, найти IP-адрес сервера, повысить безопасность подключения с помощью смены порта и ключевой аутентификации, а также как управлять доступом и защититься от атак. Всё изложено простыми словами, без сложных терминов — чтобы даже новичок понял и смог повторить.


1. Установка и базовая настройка SSH на Ubuntu

Как установить и запустить OpenSSH сервер на Ubuntu?

SSH (Secure Shell) — это протокол, который обеспечивает защищённое подключение к серверу по сети. В Ubuntu чаще всего используется его реализация — OpenSSH.

Чтобы установить OpenSSH сервер, откройте терминал и выполните команду:

sudo apt update
sudo apt install openssh-server

Если сервер уже установлен, система сообщит об этом, иначе начнётся установка.

Как проверить, что SSH-сервис работает корректно после установки?

После установки нужно убедиться, что сервис запущен и работает. Для этого выполните:

sudo systemctl status ssh

Если увидите строку с active (running), значит сервер SSH успешно запущен.

Как найти IP-адрес или доменное имя сервера для подключения по SSH?

Чтобы подключиться к серверу, нужен его IP-адрес или доменное имя.

Узнать локальный IP можно командой:

ip a

В выводе найдите адрес в формате xxx.xxx.xxx.xxx у активного сетевого интерфейса (обычно eth0 или ens33).

Если сервер в облаке или у провайдера, IP обычно указывается в панели управления.

Как настроить автоматический запуск SSH-сервиса при загрузке системы?

OpenSSH сервер обычно добавляется в автозагрузку автоматически. Чтобы убедиться, выполните:

sudo systemctl enable ssh

Это гарантирует, что SSH-сервис стартует при каждой загрузке Ubuntu.


2. Настройка безопасности SSH

Как изменить стандартный порт SSH на Ubuntu и какие меры предосторожности при этом соблюдать?

По умолчанию SSH слушает порт 22, который часто сканируют злоумышленники. Чтобы повысить безопасность, рекомендуется изменить порт на нестандартный — например, в диапазоне 49152–65535.

Для этого отредактируйте файл конфигурации:

sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak  # создаём резервную копию
sudo nano /etc/ssh/sshd_config

Найдите строку:

#Port 22

Раскомментируйте её и замените 22 на, например, 49532:

Port 49532

Сохраните файл и перезапустите SSH сервис:

sudo systemctl restart ssh

Важно: После смены порта не забудьте разрешить новый порт в брандмауэре (UFW или iptables), иначе потеряете доступ!

Как отключить вход по паролю и включить аутентификацию по SSH-ключам?

Аутентификация по ключам — более безопасный способ, чем по паролю.

В файле /etc/ssh/sshd_config найдите и измените параметры:

PasswordAuthentication no
PubkeyAuthentication yes

Это отключит вход по паролю и разрешит только по ключам.

Как запретить вход в систему по SSH под пользователем root?

Для повышения безопасности запрещаем вход под root.

В том же конфигурационном файле найдите строку:

PermitRootLogin yes

Измените на:

PermitRootLogin no

Какие дополнительные параметры конфигурационного файла SSH помогут повысить безопасность сервера?

Рассмотрим полезные параметры:

Параметр Описание Рекомендуемое значение
AllowUsers Список пользователей, которым разрешён доступ по SSH Указать конкретных пользователей, например user1 user2
AllowGroups Список групп с правом доступа Указать нужные группы
MaxAuthTries Максимальное число попыток аутентификации 3
LoginGraceTime Время ожидания для входа (секунды) 30
ClientAliveInterval Время бездействия клиента, после которого он отключается (сек) 300
PermitEmptyPasswords Запрет пустых паролей no
UseDNS Проверка соответствия DNS имени клиента no

Настройка этих параметров существенно затруднит несанкционированный доступ.


3. Работа с SSH-ключами и аутентификацией

Как сгенерировать SSH-ключи и скопировать публичный ключ на удалённый сервер?

На вашем локальном компьютере выполните:

ssh-keygen

Система предложит путь для сохранения ключа — обычно это ~/.ssh/id_rsa. Можно нажать Enter, чтобы принять по умолчанию. Для дополнительной защиты можно установить пароль на ключ.

Чтобы скопировать публичный ключ на сервер:

ssh-copy-id -p НОВЫЙ_ПОРТ пользователь@IP_адрес_сервера

Где -p — порт SSH, если он изменён.

Если ssh-copy-id недоступен, можно вручную скопировать содержимое ~/.ssh/id_rsa.pub в файл ~/.ssh/authorized_keys на сервере.

Как проверить успешное подключение по SSH с использованием ключей?

Подключитесь к серверу:

ssh -p НОВЫЙ_ПОРТ пользователь@IP_адрес_сервера

Если соединение происходит без запроса пароля (или с запросом пароля ключа, если он установлен), значит аутентификация по ключу работает.

Какие шаги нужно предпринять для автоматического подключения по SSH без пароля?

Если ключи настроены, а пароль на ключ не установлен — подключение будет автоматическим.

Для удобства можно добавить параметры в файл ~/.ssh/config на клиенте:

Host myserver
    HostName IP_адрес_сервера
    User пользователь
    Port НОВЫЙ_ПОРТ
    IdentityFile ~/.ssh/id_rsa

Тогда команда ssh myserver будет подключаться автоматически.


4. Управление доступом и защита от атак

Как ограничить доступ по SSH для определённых пользователей или групп?

В файле /etc/ssh/sshd_config добавьте:

AllowUsers user1 user2
AllowGroups sshusers

Только указанные пользователи и группы смогут подключаться.

Как настроить ограничения по времени и количеству попыток входа в SSH?

В конфигурационном файле задайте:

MaxAuthTries 3
LoginGraceTime 30
ClientAliveInterval 300

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

Как интегрировать fail2ban для защиты SSH от брутфорс-атак?

Fail2ban — это сервис, который анализирует логи и блокирует IP, с которых идут подозрительные попытки входа.

Установите fail2ban:

sudo apt install fail2ban

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

sudo systemctl start fail2ban
sudo systemctl enable fail2ban

Настройки можно изменить в файле /etc/fail2ban/jail.local.

Как настроить брандмауэр UFW или iptables для разрешения SSH-подключений на нестандартном порту?

Если вы сменили порт SSH, например на 49532, настройте брандмауэр:

Для UFW:

sudo ufw allow 49532/tcp
sudo ufw enable
sudo ufw status

Для iptables:

sudo iptables -A INPUT -p tcp --dport 49532 -j ACCEPT

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


5. Резервное копирование и восстановление конфигурации

Как сделать резервную копию конфигурационного файла SSH перед внесением изменений?

Перед редактированием файла /etc/ssh/sshd_config создайте копию:

sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak

Если что-то пойдёт не так, можно вернуть исходные настройки:

sudo cp /etc/ssh/sshd_config.bak /etc/ssh/sshd_config

Как правильно перезапустить SSH-сервис после изменения настроек?

После любых изменений в конфигурационном файле выполните:

sudo systemctl restart ssh

Или

sudo service ssh restart

Это применит новые параметры. Помните, что если вы меняли порт или другие критичные настройки, подключение по SSH может временно прерваться.


Итог

Настройка SSH на Ubuntu — это несложный, но очень важный процесс для безопасного удалённого управления сервером. Установите OpenSSH, убедитесь, что сервис работает, смените стандартный порт, настройте аутентификацию по ключам и запретите вход для root. Используйте fail2ban и брандмауэр для защиты от атак, а также всегда делайте резервные копии конфигурационных файлов перед изменениями. Следуя этим рекомендациям, вы обеспечите надёжное и удобное подключение к вашему Ubuntu серверу.


Если у вас остались вопросы — смело задавайте! А пока — удачного подключения и безопасного администрирования вашего сервера!