Найти в Дзене
Евгений Лощаков

Полное руководство по настройке SSH на серверах Ред ОС и Альт ОС

SSH (Secure Shell) — это сетевой протокол защищенного удаленного доступа, позволяющий управлять операционной системой и передавать данные по зашифрованному каналу . Он обеспечивает безопасное соединение между клиентом и сервером, гарантируя конфиденциальность и целостность передаваемой информации. Протокол SSH предоставляет широкий спектр возможностей для системного администратора: В современной серверной инфраструктуре SSH является стандартом де-факто для удаленного администрирования по следующим причинам: В обеих рассматриваемых операционных системах — Ред ОС и Альт ОС — используется свободная реализация протокола SSH — OpenSSH (OpenBSD Secure Shell) . Это наиболее популярная и активно развиваемая версия SSH, включающая в себя как серверную часть (sshd), так и клиентские утилиты . SSH построен по классической клиент-серверной архитектуре: Процесс установки SSH-соединения состоит из трех основных этапов : Клиент и сервер устанавливают базовое транспортное соединение через протокол TCP
Оглавление

Введение: Что такое SSH и для чего он нужен?

Определение

SSH (Secure Shell) — это сетевой протокол защищенного удаленного доступа, позволяющий управлять операционной системой и передавать данные по зашифрованному каналу . Он обеспечивает безопасное соединение между клиентом и сервером, гарантируя конфиденциальность и целостность передаваемой информации.

Основные возможности SSH

Протокол SSH предоставляет широкий спектр возможностей для системного администратора:

  • Удаленное управление сервером — выполнение команд, запуск приложений, администрирование системы
  • Безопасная передача файлов — копирование данных между компьютерами с помощью SCP или SFTP
  • Туннелирование и перенаправление портов — создание зашифрованных каналов для других протоколов
  • Запуск графических приложений — удаленная работа с X11-приложениями
  • Сжатие данных — ускорение передачи информации

Зачем нужен SSH на сервере?

В современной серверной инфраструктуре SSH является стандартом де-факто для удаленного администрирования по следующим причинам:

Реализация OpenSSH

В обеих рассматриваемых операционных системах — Ред ОС и Альт ОС — используется свободная реализация протокола SSH — OpenSSH (OpenBSD Secure Shell) . Это наиболее популярная и активно развиваемая версия SSH, включающая в себя как серверную часть (sshd), так и клиентские утилиты .

Принципы работы протокола SSH

Архитектура клиент-сервер

SSH построен по классической клиент-серверной архитектуре:

  • SSH-сервер — программа, устанавливаемая на удаленной машине, к которой осуществляется доступ. Она ожидает входящие соединения, обрабатывает запросы на аутентификацию и выполняет команды от клиента .
  • SSH-клиент — программа на компьютере пользователя, которая инициирует соединение, передает команды и отображает результаты .

Этапы установки соединения

Процесс установки SSH-соединения состоит из трех основных этапов :

1. Установка TCP-соединения

Клиент и сервер устанавливают базовое транспортное соединение через протокол TCP. По умолчанию SSH использует 22 порт .

2. Открытие защищенного канала

На этом этапе стороны договариваются о параметрах шифрования:

  • Клиент и сервер обмениваются информацией о поддерживаемых версиях протокола
  • Стороны согласовывают алгоритмы шифрования, сжатия и обмена ключами (выбираются первые совпадающие в списках предпочтений)
  • Происходит проверка ключа хоста сервера (fingerprint). При первом подключении клиент сохраняет этот ключ в файле ~/.ssh/known_hosts
  • Генерируется сессионный ключ для симметричного шифрования канала

3. Аутентификация пользователя

После создания защищенного канала сервер проверяет подлинность пользователя. Возможны два основных метода :

  • По паролю — классический метод, удобный, но менее безопасный
  • По ключам — асимметричное шифрование с парой ключей (приватный и публичный)

Протоколы SSH-1 и SSH-2

OpenSSH-сервер может работать как с протоколом SSH1, так и с SSH2 .

Важно: протокол SSH1 в настоящее время считается небезопасным из-за выявленных уязвимостей, поэтому его использование крайне не рекомендуется. Современные системы по умолчанию используют SSH2.

Установка SSH-сервера в Ред ОС и Альт ОС

Ред ОС

В Ред ОС сервер и клиент OpenSSH обычно уже установлены по умолчанию . Однако при необходимости их можно установить вручную.

Проверка наличия установленных пакетов:

rpm -q openssh-server openssh-clients

Установка:

sudo dnf install openssh-server openssh-clients

Пакет openssh-server содержит серверную часть (демон sshd), а openssh-clients — клиентские утилиты (ssh, scp, sftp) .

Альт ОС

В Альт ОС также по умолчанию установлены и запущены сервер и клиент OpenSSH .

Установка (при необходимости):

sudo apt-get install openssh-server openssh-clients

Для работы с ГОСТ-криптографией в Альт ОС доступны специализированные пакеты:

sudo apt-get install openssh-gostcrypto openssh-clients-gostcrypto openssh-server-gostcrypto

Запуск и управление службой

Проверка статуса:

# Ред ОС и Альт ОС (синтаксис systemd одинаков)

sudo systemctl status sshd

-2

Запуск сервера:

sudo systemctl start sshd

Остановка сервера:

sudo systemctl stop sshd

Перезапуск после изменений конфигурации:

sudo systemctl restart sshd

Автозагрузка при старте системы:

sudo systemctl enable sshd
sudo systemctl disable sshd
# для отключения автозагрузки

Структура конфигурационных файлов

Основные отличия в путях

Важно отметить, что в Ред ОС и Альт ОС используются разные пути к конфигурационным файлам SSH:

-3

Файл конфигурации сервера (sshd_config)

Основной файл настройки SSH-сервера — /etc/ssh/sshd_config в Ред ОС и /etc/openssh/sshd_config в Альт ОС. Этот файл должен быть доступен для чтения и редактирования только суперпользователю .

-4

Важные правила работы с конфигурацией:

  • После каждого изменения файла необходимо перезапускать ssh-сервер: sudo systemctl restart sshd
  • Для большинства дистрибутивов стандартной конфигурации достаточно для базовой работы
  • Рекомендуется создавать резервную копию перед изменениями: sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.backup

Основные параметры sshd_config

Рассмотрим наиболее важные параметры конфигурации SSH-сервера.

Настройка сетевых параметров

Port

Определяет порт, на котором сервер ожидает соединения. Можно указывать несколько портов

# Стандартный порт (рекомендуется сменить для безопасности)

Port 22

# Нестандартный порт (пример)

Port 2002

Важно: При смене порта необходимо обновить правила SELinux (в Ред ОС)

sudo semanage port -a -t ssh_port_t -p tcp 2002

ListenAddress

Указывает конкретные IP-адреса, на которых сервер будет принимать подключения

# Слушать на всех адресах (по умолчанию)

ListenAddress 0.0.0.0

# Только на определенном IPv4-адресе с конкретным портом

ListenAddress 192.168.1.10:22

# Только на определенном IPv6-адресе

ListenAddress [2001:db8::1]:22

AddressFamily

Ограничивает семейство IP-адресов .

# Только IPv4

AddressFamily inet

# Только IPv6

AddressFamily inet6

# Любые (по умолчанию)

AddressFamily any

UseDNS

Определяет, нужно ли серверу проверять имя хоста клиента через обратный DNS-запрос .

# Отключить проверку DNS (рекомендуется для ускорения подключения)

UseDNS no

Настройки времени и таймаутов

LoginGraceTime

Время ожидания регистрации пользователя в системе (в секундах). Если пользователь не успел войти за это время, сеанс обрывается .

# 60 секунд

LoginGraceTime 60

# Бесконечное ожидание (не рекомендуется)

LoginGraceTime 0

TCPKeepAlive

Указывает, нужно ли системе посылать TCP-сообщения клиенту для поддержания соединения .

TCPKeepAlive yes

ClientAliveInterval и ClientAliveCountMax

Более безопасная альтернатива TCPKeepAlive — отправка зашифрованных сообщений клиенту .

# Интервал отправки сообщений (в секундах)

ClientAliveInterval 300

# Максимальное количество неподтвержденных сообщений

ClientAliveCountMax 3

Настройки аутентификации

PermitRootLogin

Разрешает или запрещает вход для суперпользователя root .

# Полностью запретить вход для root (рекомендуется)

PermitRootLogin no

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

PermitRootLogin prohibit-password

# Разрешить вход (небезопасно!)

PermitRootLogin yes

Рекомендация: Запретите прямой вход для root и используйте обычного пользователя с правами sudo .

PasswordAuthentication

Включает или отключает аутентификацию по паролю .

# Отключить парольную аутентификацию (рекомендуется при использовании ключей)

PasswordAuthentication no

# Включить парольную аутентификацию (менее безопасно)

PasswordAuthentication yes

PubkeyAuthentication

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

PubkeyAuthentication yes

PermitEmptyPasswords

Запрещает вход с пустым паролем .

PermitEmptyPasswords no

MaxAuthTries

Максимальное число попыток аутентификации для одного соединения .

MaxAuthTries 3

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

Базовые рекомендации по безопасности

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

1. Смена стандартного порта

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

# В /etc/ssh/sshd_config (или /etc/openssh/sshd_config)

Port 2222

2. Запрет прямого входа для root

PermitRootLogin no

3. Отключение аутентификации по паролю (при использовании ключей)

PasswordAuthentication no
PubkeyAuthentication yes

4. Ограничение количества попыток и времени

MaxAuthTries 3
LoginGraceTime 60

5. Ограничение списка пользователей и групп

# Разрешить вход только конкретным пользователям
AllowUsers admin user1 user2

# Разрешить вход только членам определенных групп
AllowGroups sshusers admins

Дополнительные меры защиты

Настройка MaxStartups

Ограничивает количество одновременных "ожидающих" соединений (когда пароль еще не введен), помогая бороться с брутфорс-атаками .

MaxStartups 3:60:10

Пояснение: Разрешены только 3 ожидающих соединения, каждое следующее будет сброшено с вероятностью 60%, начиная с 10-го .

Защита с помощью fail2ban

Fail2ban анализирует логи и временно блокирует IP-адреса, с которых происходит много неудачных попыток входа.

# Установка fail2ban
# Ред ОС
sudo dnf install fail2ban

# Альт ОС
sudo apt-get install fail2ban

# Создание локальной конфигурации
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
sudo systemctl enable --now fail2ban

Пример защищенной конфигурации

# Базовые настройки

Port 2222

AddressFamily inet

UseDNS no

# Ограничение времени и попыток

LoginGraceTime 60

MaxAuthTries 3

MaxSessions 10

MaxStartups 3:60:10

# Настройки поддержания соединения

ClientAliveInterval 300

ClientAliveCountMax 2

TCPKeepAlive no

# Аутентификация

PermitRootLogin no

PubkeyAuthentication yes

PasswordAuthentication no

PermitEmptyPasswords no

ChallengeResponseAuthentication no

# Ограничение пользователей

AllowUsers adminuser

AllowGroups sshusers

# Логирование

SyslogFacility AUTH

LogLevel VERBOSE

Настройка баннеров в SSH

Что такое SSH-баннер?

Баннер в контексте SSH — это текстовое сообщение, которое отображается пользователю до или после успешной аутентификации. Баннеры выполняют несколько важных функций:

  1. Предупреждение о конфиденциальности — информирование о том, что доступ к системе ограничен и ведется мониторинг
  2. Юридическое предупреждение — уведомление о правовых последствиях несанкционированного доступа
  3. Информационные сообщения — уведомления о плановых работах, правилах использования
  4. Идентификация системы — информация о принадлежности сервера к определенной организации

Типы баннеров в SSH

В OpenSSH существует два типа баннеров:

-5

Настройка баннера до аутентификации (Banner)

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

Шаг 1: Создание файла баннера

Создайте текстовый файл с содержимым баннера. Обычно он располагается в /etc/ssh/ или /etc/:

sudo nano /etc/ssh/banner

Пример юридического предупреждения:

-6

Пример информационного баннера:

-7

Шаг 2: Указание файла баннера в конфигурации SSH

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

# Ред ОС

sudo nano /etc/ssh/sshd_config

# Альт ОС

sudo nano /etc/openssh/sshd_config

Добавьте или раскомментируйте строку:

# Указание пути к файлу баннера

Banner /etc/ssh/banner

-8

Шаг 3: Перезапуск SSH-сервера

sudo systemctl restart sshd

Проверка работы баннера

Подключитесь к серверу и убедитесь, что баннер отображается:

ssh user@server-ip

-9

Настройка баннера после аутентификации (motd)

motd (Message of the Day) — это сообщение, отображаемое пользователю после успешного входа в систему. Это стандартный механизм Unix, не специфичный для SSH.

Файл /etc/motd

Самый простой способ — отредактировать файл /etc/motd:

sudo nano /etc/motd

Пример содержимого:

Добро пожаловать на сервер!
================================
Текущая дата: $(date)
Загруженность системы: $(uptime)
================================
Пожалуйста, соблюдайте правила безопасности.

Важно: В некоторых дистрибутивах (включая Ред ОС) файл /etc/motd может быть симлинком или перезаписываться при обновлениях. Проверьте это командой ls -la /etc/motd.

Динамический motd через скрипты

Более гибкий подход — использование динамического баннера через скрипты. Для этого нужно:

  1. Убедиться, что в /etc/pam.d/sshd есть строка:

session optional pam_motd.so motd=/run/motd.dynamic

session optional pam_motd.so

2. Скрипты для генерации динамического motd обычно находятся в /etc/update-motd.d/ (в Ubuntu-подобных системах) или настраиваются через PAM.

Отключение motd для определенных пользователей

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

touch ~/.hushlogin

Настройка баннера при подключении через SFTP/SCP

При использовании SFTP или SCP баннеры ведут себя по-разному:

  • SCP — обычно игнорирует баннеры для сохранения целостности передаваемых данных
  • SFTP — может отображать баннер в интерактивном режиме

Для управления этим поведением существуют параметры клиента:

# Отключение проверки баннера при SFTP (в клиентской конфигурации)

sftp -o BatchMode=yes user@server

Специальные символы и форматирование в баннерах

В баннерах можно использовать различные символы для улучшения читаемости:

# Простое форматирование с рамкой

echo "========================================"

echo "= СИСТЕМНОЕ СООБЩЕНИЕ ="

echo "========================================"

# Использование Unicode-символов (если терминал поддерживает)

echo "🔒 БЕЗОПАСНЫЙ ДОСТУП 🔒"

echo "📅 $(date +%d.%m.%Y)"

# Цветовое оформление (используйте escape-последовательности)

echo -e "\e[31m⚠️ ВНИМАНИЕ\e[0m — красное предупреждение"

Отключение motd для определенных пользователей

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

bash

touch ~/.hushlogin

Важно: Не все терминалы корректно отображают Unicode и цвета. Для максимальной совместимости рекомендуется использовать только ASCII-символы.

Правовые аспекты использования баннеров

В корпоративной среде баннеры имеют юридическое значение:

  1. Предупреждение о мониторинге — информирует пользователей о том, что их действия записываются
  2. Согласие с условиями — продолжение работы после показа баннера может рассматриваться как согласие с условиями
  3. Доказательство в суде — при расследовании инцидентов баннер служит доказательством предупреждения

Рекомендации для юридически значимого баннера:

  • Укажите, что доступ разрешен только авторизованным лицам
  • Сообщите о ведении мониторинга и логирования
  • Предупредите о последствиях несанкционированного доступа
  • Добавьте контактную информацию для связи

Примеры баннеров для разных ситуаций

Для production-сервера:

-10

Для тестового сервера:

-11

Для сервера с особыми требованиями безопасности:

-12

Управление баннерами в Альт ОС с помощью control

В Альт ОС доступна утилита control для управления настройками SSH, включая баннеры:

# Проверка текущего статуса баннера

control sshd-banner

# Включение баннера (если файл существует)

control sshd-banner enabled

# Отключение баннера

control sshd-banner disabled

# Установка пользовательского файла баннера

control sshd-banner /etc/openssh/custom-banner

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

Проверка синтаксиса конфигурации

# Ред ОС

sudo sshd -t -f /etc/ssh/sshd_config

# Альт ОС

sudo sshd -t -f /etc/openssh/sshd_config

Просмотр логов при проблемах с баннером

# Поиск ошибок, связанных с баннером

sudo journalctl -u sshd | grep -i banner

Тестирование отображения баннера

# Подключение с verbose-режимом покажет, отправляется ли баннер
ssh -v user@server | grep -i banner

Ограничения и особенности баннеров

  1. Размер баннера — некоторые старые SSH-клиенты могут обрезать длинные баннеры
  2. Несовместимость с некоторыми клиентами — отдельные реализации SSH могут игнорировать баннеры
  3. Проблемы с кодировкой — убедитесь, что файл баннера сохранен в UTF-8 или ASCII
  4. SCP/SFTP в пакетном режиме — могут не отображать баннеры для автоматизации

Аутентификация по ключам

Аутентификация на основе SSH-ключей является наиболее безопасным и удобным способом входа на сервер .

Принцип работы ключевой аутентификации

Используется асимметричное шифрование с парой ключей :

  • Приватный ключ (id_ed25519, id_rsa) — хранится на клиентской машине в секрете. Никому не передается .
  • Публичный ключ (id_ed25519.pub, id_rsa.pub) — копируется на сервер и служит для проверки подлинности пользователя.

При подключении клиент доказывает серверу, что владеет приватным ключом, соответствующим публичному ключу в файле authorized_keys.

Генерация ключей на клиенте

Ключи генерируются на компьютере, с которого будет выполняться подключение (клиент) .

Современные типы ключей:

  • ed25519 — рекомендуется, современный алгоритм с высокой безопасностью и производительностью
  • RSA (2048 или 4096 бит) — классический, широко поддерживаемый

# Генерация ключа ed25519 (рекомендуется)

ssh-keygen -t ed25519

# Генерация ключа RSA 4096 бит

ssh-keygen -t rsa -b 4096

В процессе генерации система спросит:

  1. Путь для сохранения ключа — по умолчанию ~/.ssh/id_ed25519 (можно нажать Enter)
  2. Парольную фразу (passphrase) — дополнительная защита ключа. Рекомендуется указать, чтобы даже при краже файла ключа злоумышленник не смог его использовать .

После генерации в каталоге ~/.ssh/ появятся два файла :

  • id_ed25519 — секретный ключ (никому не передавать!)
  • id_ed25519.pub — публичный ключ

Копирование публичного ключа на сервер

Способ 1: ssh-copy-id (рекомендуемый)

Утилита автоматически добавляет публичный ключ в файл ~/.ssh/authorized_keys на сервере .

ssh-copy-id -i ~/.ssh/id_ed25519.pub user@server-ip

Способ 2: Ручное копирование

Если ssh-copy-id недоступна, можно скопировать ключ вручную:

# На клиенте просмотреть содержимое публичного ключа

cat ~/.ssh/id_ed25519.pub

# На сервере (если нет входа по паролю, потребуется другой способ)

mkdir -p ~/.ssh

chmod 700 ~/.ssh

echo "скопированный_публичный_ключ" >> ~/.ssh/authorized_keys

chmod 600 ~/.ssh/authorized_keys

Использование ssh-agent

ssh-agent — это менеджер ключей, который хранит расшифрованные ключи в памяти на время сеанса, избавляя от необходимости каждый раз вводить парольную фразу .

# Запуск ssh-agent (обычно запускается автоматически при графическом входе)

eval $(ssh-agent)

# Добавление ключа в агент (будет запрошена passphrase)

ssh-add

# Добавление конкретного ключа

ssh-add ~/.ssh/id_ed25519

# Просмотр добавленных ключей

ssh-add -l

После добавления ключа в агент подключение будет происходить без ввода пароля .

Включение ключевой аутентификации на сервере

В файле конфигурации сервера должны быть включены соответствующие параметры :

# /etc/ssh/sshd_config или /etc/openssh/sshd_config

PubkeyAuthentication yes

Управление доступом пользователей и групп

OpenSSH предоставляет гибкие возможности для ограничения доступа к серверу на основе пользователей и групп .

Директивы управления доступом

-13

Порядок обработки: DenyUsers → AllowUsers → DenyGroups → AllowGroups .

Примеры использования

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

AllowUsers admin john alice

Разрешить доступ только членам определенных групп

AllowGroups sshusers admins

Запретить доступ конкретному пользователю

DenyUsers baduser

Комбинирование с ограничением по хосту

Можно указывать пользователя в формате user@host для разграничения доступа с определенных хостов :

# Разрешить admin только с конкретного IP
AllowUsers admin@192.168.1.100

Управление доступом в Альт ОС через control-sshd

В Альт ОС доступен удобный инструмент control для управления настройками sshd :

# Включить контроль доступа по группам

control sshd-allow-groups enabled

# Отключить аутентификацию по паролю

control sshd-password-auth disabled

# Установить режим аутентификации для root

control sshd-permit-root-login without_password # только по ключам

control sshd-permit-root-login disabled # запрещен

control sshd-permit-root-login enabled # разрешен

После изменений необходимо перезапустить сервер:

systemctl restart sshd

Настройка SSH-клиента {#настройка-клиента}

Базовое подключение

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

# Если имя пользователя на сервере совпадает с локальным

ssh server-ip

# Если имя пользователя отличается

ssh user@server-ip

# Подключение к нестандартному порту

ssh -p 2222 user@server-ip

Конфигурационные файлы клиента

Настройки клиента SSH делятся на два уровня :

  • Глобальные — /etc/ssh/ssh_config (Ред ОС) или /etc/openssh/ssh_config (Альт ОС), применяются ко всем пользователям
  • Пользовательские — ~/.ssh/config, применяются к конкретному пользователю

Создание алиасов (псевдонимов)

Файл ~/.ssh/config позволяет создавать удобные алиасы для частых подключений :

# Простой алиас

Host myserver

HostName 192.168.1.100

User admin

Port 22

# Сложный алиас с дополнительными параметрами

Host work

HostName server.company.com

User ivanov

Port 2222

IdentityFile ~/.ssh/work_key

Compression yes

ForwardX11 yes

После создания такого файла можно подключаться просто командой:

ssh work

вместо полной команды:

ssh -i ~/.ssh/work_key -p 2222 [email protected]

Режим отладки

Для диагностики проблем можно использовать опцию -v (и более: -vv, -vvv) :

ssh -v user@server

Это покажет подробную информацию о процессе подключения, включая согласованные алгоритмы шифрования .

ГОСТ-криптография в Альт ОС

В Альт ОС поддерживаются алгоритмы ГОСТ для шифрования . Для их использования в клиентском конфигурационном файле нужно указать соответствующие параметры:

# /etc/openssh/ssh_config или ~/.ssh/config

Ciphers grasshopper-ctr@altlinux.org

MACs grasshopper-mac@altlinux.org,hmac-streebog-512@altlinux.org

В режиме отладки можно увидеть используемый алгоритм :

debug1: kex: server->client cipher: grasshopper-ctr@altlinux.org MAC: grasshopper-mac@altlinux.org

Дополнительные возможности SSH

Передача файлов

SCP (Secure Copy)

Копирование файлов по SSH :

# Копирование с локального на удаленный

scp localfile.txt user@server:/home/user/

# Копирование с удаленного на локальный

scp user@server:/home/user/remotefile.txt .

# Копирование с указанием порта

scp -P 2222 localfile.txt user@server:/home/user/

SFTP (SSH File Transfer Protocol)

Интерактивная сессия для работы с файлами :

sftp user@server
# Внутри sftp можно использовать команды: ls, cd, get, put, mkdir и т.д.

Проброс портов (туннелирование)

SSH позволяет создавать зашифрованные туннели для других протоколов:

# Локальный проброс порта

# Весь трафик на локальный порт 8080 будет уходить через сервер на example.com:80

ssh -L 8080:example.com:80 user@server

# Удаленный проброс порта

ssh -R 8080:localhost:80 user@server

Запуск графических приложений (X11 Forwarding)

SSH может перенаправлять X11-соединения, позволяя запускать графические приложения на сервере и отображать их на клиенте .

На сервере в sshd_config:

X11Forwarding yes

На клиенте при подключении:

ssh -X user@server
# После подключения можно запустить, например, gedit
gedit

Монтирование удаленной директории (sshfs)

С помощью sshfs можно монтировать удаленный каталог как локальную файловую систему .

# Установка sshfs

# Ред ОС: sudo dnf install sshfs

# Альт ОС: sudo apt-get install sshfs

# Монтирование

sshfs user@server:/remote/path /local/mount/point

# Размонтирование

fusermount -u /local/mount/point

Диагностика и устранение проблем

Проверка статуса службы

sudo systemctl status sshd

Проверка конфигурационного файла

Перед перезапуском полезно проверить синтаксис конфигурации:

# Ред ОС

sudo sshd -t -f /etc/ssh/sshd_config

# Альт ОС

sudo sshd -t -f /etc/openssh/sshd_config

Просмотр логов

# Просмотр логов SSH (Ред ОС - /var/log/secure, Альт ОС - /var/log/auth.log)
sudo journalctl -u sshd -f

# Просмотр неудачных попыток входа
sudo journalctl -u sshd | grep "Failed"

Типичные проблемы и решения

1. "Connection refused" (Отказ в соединении)

Причины:

  • Сервер SSH не запущен
  • Порт заблокирован фаерволом
  • Сервер слушает на другом порту или интерфейсе

Решение:

# Проверить статус службы

sudo systemctl status sshd

# Проверить, на каких портах слушает sshd

sudo ss -tlnp | grep ssh

# Проверить правила фаервола

sudo firewall-cmd --list-all

2. "Permission denied" (Отказ в доступе)

Причины:

  • Неправильный пароль или ключ
  • Неправильные права на файлы ключей
  • Пользователь не в списке разрешенных

Решение:

# Проверить права на ~/.ssh и authorized_keys

chmod 700 ~/.ssh

chmod 600 ~/.ssh/authorized_keys

# Проверить настройки AllowUsers/AllowGroups

sudo grep -E "Allow(Users|Groups)" /etc/ssh/sshd_config

3. Медленное подключение

Причина: Включенная проверка DNS (UseDNS)

Решение:

# В sshd_config

UseDNS no

4. Предупреждение об изменении ключа хоста

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

Причина: Изменился ключ сервера (переустановка системы, подмена сервера) .

Решение: Удалить старый ключ из ~/.ssh/known_hosts:

ssh-keygen -R server-ip

Сохранение ключей хоста при переустановке

Чтобы избежать предупреждений об изменении ключа после переустановки системы, необходимо сохранить файлы ключей хоста :

# Создать резервную копию ключей перед переустановкой

sudo cp /etc/ssh/ssh_host*key* /backup/location/

# Восстановить после переустановки

sudo cp /backup/location/ssh_host*key* /etc/ssh/

Заключение

Сравнение Ред ОС и Альт ОС

-14

Рекомендации по безопасной настройке

  1. Обязательно отключите прямой вход для root: PermitRootLogin no
  2. Используйте ключевую аутентификацию вместо паролей: PasswordAuthentication no
  3. Смените стандартный порт для снижения количества автоматических атак
  4. Ограничьте список пользователей, которым разрешен доступ
  5. Используйте fail2ban для блокировки брутфорс-атак
  6. Регулярно обновляйте пакет OpenSSH
  7. Следите за логами и анализируйте подозрительную активность

Проверочный список после настройки

  • SSH-сервер запущен и добавлен в автозагрузку
  • Вход по паролю отключен (если используются ключи)
  • Вход для root запрещен
  • Изменен стандартный порт (опционально)
  • Настроены ограничения на пользователей/группы
  • Созданы и скопированы ключи для администраторов
  • Проверена работа подключения с клиента
  • Настроено резервное копирование ключей хоста
  • Установлен и настроен fail2ban

Полезные ресурсы

  • man-страницы: man sshd_config, man ssh_config, man ssh
  • Документация Ред ОС: redos.red-soft.ru
  • Документация Альт ОС: docs.altlinux.org
  • OpenSSH официальный сайт: openssh.com

SSH является незаменимым инструментом в работе любого системного администратора. Правильная настройка SSH-сервера обеспечивает не только удобство удаленного управления, но и безопасность всей серверной инфраструктуры. Уделите время изучению всех возможностей этого мощного протокола, и вы сможете эффективно и безопасно администрировать свои серверы на Ред ОС и Альт ОС.