Linux

Установка и настройка OpenSSH сервера на Linux

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

Обновлено 8 апреля 2026 г.
10-15 минут
Низкая
FixPedia Team
Применимо к:Ubuntu 20.04+Debian 10+CentOS 8+RHEL 8+Любой дистрибутив с systemd

Введение / Зачем это нужно

OpenSSH сервер (sshd) — это стандартное решение для безопасного удалённого управления серверами по протоколу SSH. После настройки вы сможете:

  • Подключаться к серверу через зашифрованный канал.
  • Использовать SSH-ключи вместо паролей для усиления безопасности.
  • Перенаправлять порты, копировать файлы (SCP/SFTP) и туннелировать трафик.
  • Ограничивать доступ по IP или пользователям.

Этот гайд подходит для большинства современных Linux-дистрибутивов на базе systemd (Ubuntu, Debian, CentOS, RHEL).

Требования / Подготовка

Перед началом убедитесь, что:

  1. У вас есть доступ к серверу с правами sudo (или root).
  2. Сервер подключён к сети и вы знаете его IP-адрес.
  3. Установлен менеджер пакетов (apt, yum/dnf).
  4. (Опционально) Сгенерирован SSH-ключ на клиенте, если планируете использовать аутентификацию по ключу.

Шаг 1: Установка OpenSSH сервера

Установите пакет openssh-server:

Для Ubuntu/Debian:

sudo apt update
sudo apt install openssh-server -y

Для CentOS/RHEL 8+:

sudo dnf install openssh-server -y

Пакет автоматически создаст службу sshd и конфигурационный файл /etc/ssh/sshd_config.

Шаг 2: Проверка статуса службы SSH

Убедитесь, что служба запущена и включена в автозагрузку:

sudo systemctl status sshd

Если служба не активна, запустите её:

sudo systemctl start sshd
sudo systemctl enable sshd

Шаг 3: Базовая настройка SSH сервера

Редактируйте основной конфигурационный файл:

sudo nano /etc/ssh/sshd_config

Рекомендуемые настройки для повышения безопасности:

# Измените порт (опционально, но рекомендуется)
Port 2222

# Запретите вход root
PermitRootLogin no

# Разрешите аутентификацию по ключу
PubkeyAuthentication yes

# Запретите аутентификацию по паролю (если используете ключи)
PasswordAuthentication no

# Ограничьте количество попыток входа
MaxAuthTries 3

# Укажите версию протокола 2
Protocol 2

# (Опционально) Разрешите только конкретных пользователей
# AllowUsers alice bob

⚠️ Важно: Не закрывайте текущую сессию SSH до проверки нового подключения. Ошибки в конфиге могут заблокировать доступ.

Шаг 4: Настройка фаервола

Если на сервере активен фаервол (например, ufw или firewalld), откройте порт SSH:

Для UFW (Ubuntu/Debian):

sudo ufw allow 2222/tcp  # если меняли порт, укажите ваш
sudo ufw reload

Для firewalld (CentOS/RHEL):

sudo firewall-cmd --permanent --add-port=2222/tcp
sudo firewall-cmd --reload

Шаг 5: Перезапуск службы SSH

Примените изменения конфигурации:

sudo systemctl restart sshd

Проверьте синтаксис конфига перед перезапуском (чтобы избежать ошибок):

sudo sshd -t

Если команда ничего не выводит — синтаксис корректен.

Шаг 6: Проверка подключения

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

ssh -p 2222 username@server_ip

Где:

  • 2222 — ваш порт (если не меняли, используйте 22).
  • username — ваше имя пользователя на сервере.
  • server_ip — внешний IP сервера.

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

Возможные проблемы

Ошибка Connection refused

  • Причина: Служба sshd не запущена или порт не открыт в фаерволе.
  • Решение:
    1. Проверьте статус службы: sudo systemctl status sshd.
    2. Убедитесь, что порт открыт: sudo ufw status или sudo firewall-cmd --list-all.
    3. Проверьте, слушает ли sshd на порту: sudo ss -tlnp | grep sshd.

Ошибка Permission denied (publickey,password)

  • Причина: Неверный ключ, запрещён парольный вход или пользователь не в AllowUsers.
  • Решение:
    1. Убедитесь, что публичный ключ добавлен в ~/.ssh/authorized_keys на сервере.
    2. Проверьте настройки PasswordAuthentication и PubkeyAuthentication в sshd_config.
    3. Если используется AllowUsers, добавьте нужного пользователя.

Служба не запускается после редактирования конфига

  • Причина: Синтаксическая ошибка в sshd_config.
  • Решение: Выполните sudo sshd -t для проверки. Исправьте указанную строку.

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

  • Причина: Фаервол не настроен на новый порт или клиент пытается подключиться к старому.
  • Решение: Укажите порт явно в команде ssh -p 2222 ... и откройте его в фаерволе.

Часто задаваемые вопросы

Как изменить стандартный порт SSH с 22 на другой?
Как полностью отключить вход по паролю и оставить только по SSH-ключу?
Что делать, если после настройки потерял доступ к серверу?
Как разрешить доступ только определённым пользователям?

Полезное

Установка пакета openssh-server
Проверка статуса службы SSH
Настройка конфигурационного файла
Настройка фаервола
Перезапуск службы SSH
Проверка подключения

Эта статья помогла вам решить проблему?