Гид по технологиям

Как настроить и использовать OpenSSH в Linux

6 min read Linux Обновлено 01 Dec 2025
Как настроить и использовать OpenSSH в Linux
Как настроить и использовать OpenSSH в Linux

Иллюстрация защиты от кибератак на компьютере.jpg?w=1600&h=900&fit=crop)

Введение в SSH

SSH (Secure Shell) — протокол для безопасного удалённого управления и передачи данных. Он обеспечивает аутентификацию и шифрование каналов связи, заменяя устаревшие инструменты вроде telnet и rlogin. Типичный набор инструментов включает ssh (удалённый вход и выполнение команд), scp (простое копирование файлов) и sftp/rsync (надёжная синхронизация и передача).

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

Важно: «sshd» — это демон (сервер) OpenSSH; «ssh» — клиентская утилита для подключения.

Быстрый план установки и запуска (SOP)

  1. Проверить, установлены ли пакеты OpenSSH.
  2. Установить openssh-server, если нужно.
  3. Запустить и включить сервис (systemctl enable/start).
  4. Открыть порт 22 в фаерволе при необходимости.
  5. Проверить подключение с другого хоста и настроить ключи.

Установка: какие пакеты и как проверить

На большинстве Linux‑систем клиент и сервер OpenSSH представлены пакетами openssh, openssh-client, openssh-server (названия могут незначительно отличаться по дистрибутивам).

Для RHEL/Fedora проверьте установленные пакеты командой:

yum list installed | grep openssh

Список установленных пакетов OpenSSH в Fedora

На Ubuntu обычно установлен только клиент. Для списка пакетов используйте:

sudo dpkg --list | grep openssh

Список пакетов OpenSSH в Ubuntu

Если нужен сервер (openssh-server) на Ubuntu/Debian, установите так:

sudo apt-get update
sudo apt-get install openssh-server

Включение и проверка сервиса OpenSSH

Управление сервисом зависит от дистрибутива, но в современных системах с systemd команды общие.

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

# Fedora / RHEL
systemctl status sshd.service

# Ubuntu / Debian
systemctl status ssh

Если сервис не запущен, запустите его:

# Fedora / RHEL
sudo systemctl start sshd.service

# Ubuntu / Debian
sudo systemctl start ssh

Чтобы сервис автоматически запускался при загрузке:

# Fedora / RHEL
sudo systemctl enable sshd.service

# Ubuntu / Debian
sudo systemctl enable ssh

Примечание: на некоторых системах сервис может именоваться sshd, на других — ssh. Проверяйте через systemctl list‑units или через менеджер пакетов.

Базовое использование клиента SSH

ssh — основной инструмент для удалённого входа и выполнения команд.

Удалённый вход

Пример входа под пользователем ubuntu на хост по IP X.X.X.X:

ssh ubuntu@X.X.X.X

Для входа на localhost (проверка локальной конфигурации):

ssh localhost

При первом подключении ssh предложит добавить ключ хоста в known_hosts — подтвердите вводом yes и затем введите пароль пользователя, если аутентификация по ключу не настроена.

SSH вход с другой машины

Для завершения сессии используйте exit. Если обычный exit не работает, сочетание клавиш ~. (тильда и точка) также закрывает соединение:

~.

SSH удалённый выход

Удалённое выполнение команд

Команда ssh может выполнить одиночную команду на удалённом хосте и вернуть вывод локально:

ssh ubuntu@X.X.X.X hostname

Для команд с опциями используйте кавычки:

ssh ubuntu@X.X.X.X "cat /tmp/new_file"

Вывод hostname удалённой машины

Можно запускать несколько команд в одной сессии, либо использовать X11‑форвардинг для графических приложений (см. ниже).

Просмотр содержимого файла через ssh

X11‑форвардинг (для GUI через SSH)

Если необходимо запускать GUI‑приложения с удалённого хоста на локальной машине, включите X11‑форвардинг в конфигурации сервера. В файле /etc/ssh/sshd_config убедитесь, что строка выглядит так:

X11Forwarding yes

Перезапустите sshd и используйте ключ -X при подключении:

ssh -X ubuntu@X.X.X.X

Пример запуска нескольких команд с X11‑форвардингом (прим.: оператор & в одном вызове может вести себя по‑разному в зависимости от оболочки):

ssh -X ubuntu@X.X.X.X "hostname && cat /tmp/new_file"

Пример X11-форвардинга и запуска команд

Передача файлов: scp и rsync

scp — простой инструмент для копирования файлов через SSH. rsync — более гибкий инструмент для синхронизации и резервного копирования.

Копирование файла с удалённой машины в локальную директорию /tmp:

scp ubuntu@X.X.X.X:/home/ubuntu/demo/file /tmp

Рекурсивное копирование каталога:

scp -r localhost:/home/ubuntu/ /tmp

Недостатки scp:

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

Пример просмотра прав и времён файлов:

ls -l /etc/demo /tmp/demo

scp изменяет права и метки времени

rsync как альтернатива (рекомендуется для резервного копирования):

# рекурсивно, в архивном режиме, подробный вывод
rsync -av ubuntu@X.X.X.X:/home/ubuntu/demo /tmp

rsync сохраняет права и временные метки и передаёт только изменённые файлы, что экономит трафик и время.

Использование rsync для копирования файлов/директорий

Повторный запуск rsync не будет копировать неизменённые файлы, если они уже синхронизированы.

Сравнение содержимого папок после rsync

Флаги scp и rsync — краткая шпаргалка

  • scp -r : рекурсивное копирование каталогов
  • scp -p : попытка сохранить временные метки и режимы
  • rsync -a : архивный режим (рекурсивно + сохраняет права/временные метки и т.д.)
  • rsync -v : подробный вывод
  • rsync –delete : удалить в приёмной папке файлы, отсутствующие в источнике

Сравнение: scp vs rsync vs sftp

Характеристикаscprsyncsftp
Копирование одиночных файловлегковозможнода
Рекурсивное копированиедада (оптимально)да
Сохранение прав и временных метокс -p частичнода (в -a)зависит от реализации
Передача только измененийнетдазависит (обычно нет)
Подходит для резервного копированияограниченнодаумеренно

Безопасность и hardening SSH

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

  • Отключите аутентификацию по паролю и включите аутентификацию по ключам (Public Key).
  • Запретите вход под root (PermitRootLogin no).
  • Используйте нестандартный порт только как дополнительный барьер, но не как основную меру безопасности.
  • Включите Fail2Ban или аналог для блокировки повторных неудачных попыток.
  • Ограничьте доступ по IP в файрволе (ufw, firewalld, iptables).
  • Используйте сильные ключи (ed25519 или rsa 3072+).
  • Регулярно обновляйте пакеты OpenSSH и систему.

Пример минимальных настроек в /etc/ssh/sshd_config:

PermitRootLogin no
PasswordAuthentication no
PubkeyAuthentication yes
AllowUsers youruser anotheruser
PermitEmptyPasswords no
X11Forwarding no   # включать только при необходимости

Важно: перед отключением PasswordAuthentication убедитесь, что у вас настроена корректно авторизация по ключам.

Чек‑лист по ролям

Администратор:

  • Установить и проверить sshd.
  • Настроить ключи для доступа администратора.
  • Отключить root‑вход и пароли.
  • Настроить мониторинг и бэкапы.

Разработчик/DevOps:

  • Настроить SSH‑ключи для CI/CD.
  • Настроить безопасные права на private key (chmod 600).
  • Проверить X11/Xforwarding только при необходимости.

Обычный пользователь:

  • Сгенерировать ключи (ssh-keygen) и добавить публичный ключ на сервер (ssh-copy-id).
  • Хранить приватный ключ в защищённом месте.

Методика развертывания SSH на новом сервере (мини‑процесс)

  1. Установить пакет openssh-server.
  2. Сгенерировать ключи сервера (обычно при установке это делается автоматически).
  3. Создать пользователей и добавить публичные ключи в ~/.ssh/authorized_keys.
  4. Настроить /etc/ssh/sshd_config по политике безопасности.
  5. Открыть порт в фаерволе и включить сервис.
  6. Проверить подключение с тестового хоста.

Критерии приёмки

  • sshd запущен и активен: systemctl status sshd (или ssh).
  • Подключение по ключу работает, а подключение по паролю отключено (если политика это требует).
  • Порт 22 (или выбранный) доступен лишь с разрешённых адресов.
  • Резервное копирование /etc/ssh/ и /var/log/auth.log настроено.

Отладка: распространённые ошибки и решения

  • Permission denied (publickey): проверьте правильность прав на ~/.ssh и authorized_keys (700 на~/.ssh, 600 на файл).
  • Connection refused: sshd не запущен или фаервол/сетевой ACL блокирует порт.
  • Timeout: проблема маршрутизации/фаервола или хост недоступен.
  • Host key verification failed: удалённый хост сменил ключ; проверьте подлинность и при необходимости удалите старую запись из ~/.ssh/known_hosts.

Краткая глоссарий (1‑строчные определения)

  • ssh: клиент для подключения к удалённому хосту.
  • sshd: демон сервера OpenSSH.
  • scp: утилита копирования файлов поверх SSH.
  • rsync: утилита синхронизации файлов/каталогов, оптимизированная для передачи только изменений.
  • authorized_keys: файл с публичными ключами, разрешающими доступ.

Шпаргалка: часто используемые команды

# Проверить установленные пакеты (RHEL/Fedora)
yum list installed | grep openssh

# Проверить/установить openssh-server (Ubuntu/Debian)
sudo apt-get update
sudo apt-get install openssh-server

# Управление сервисом
sudo systemctl start|stop|restart sshd.service   # Fedora/RHEL
sudo systemctl start|stop|restart ssh            # Ubuntu/Debian
sudo systemctl enable sshd.service

# Подключение
ssh user@host
ssh -p 2222 user@host   # нестандартный порт
ssh -X user@host        # X11‑форвардинг

# Копирование
scp /local/file user@host:/remote/path
scp -r /local/dir user@host:/remote/dir
rsync -av /local/dir/ user@host:/remote/dir/

# Копирование публичного ключа на сервер
ssh-copy-id user@host

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

  • Для высокопроизводительной передачи больших наборов данных по локальной сети могут быть более эффективные протоколы/решения со специализированной оптимизацией.
  • Если требуется сложное управление доступом и учётом действий на уровне приложений, стоит рассмотреть дополнительные решения (bastion/Jump host, PAM, централизованный IDM).

Резюме

OpenSSH остаётся основным инструментом для безопасного удалённого доступа к Linux‑серверам. Важнее всего — корректная установка, надёжная конфигурация (ключи вместо паролей, запрет root), использование rsync для резервного копирования и регулярный мониторинг. Применяйте чек‑листы по ролям и следуйте практикам hardening, чтобы снизить риски.

Важно: перед применением изменений в продакшн‑окружении протестируйте их на стенде и убедитесь, что у вас остаётся доступ администратора.

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Как открыть файл .ADOC в Windows
Инструкция

Как открыть файл .ADOC в Windows

Как ускорить медленный запуск Windows 11
Windows

Как ускорить медленный запуск Windows 11

Завершать встречи раньше в Outlook
Productivity

Завершать встречи раньше в Outlook

Как пользоваться Scheduling Assistant в Outlook
Outlook

Как пользоваться Scheduling Assistant в Outlook

Проверка состояния SD‑карты SanDisk
Хранение

Проверка состояния SD‑карты SanDisk

Исправить ошибку vc_runtimeMinimum_x64.msi
Windows

Исправить ошибку vc_runtimeMinimum_x64.msi