В этой статье мы подробно разберём, как установить и настроить 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 серверу.
Если у вас остались вопросы — смело задавайте! А пока — удачного подключения и безопасного администрирования вашего сервера!
 
            