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

Руководство по SSH: установка, использование и копирование файлов с OpenSSH

7 min read Администрирование Обновлено 13 Apr 2026
SSH: установка и использование OpenSSH
SSH: установка и использование OpenSSH

Визуализация защиты от компьютера от кибератак.jpg)

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

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

Что такое SSH — одно предложение

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

Основные сценарии использования (Primary intent и варианты)

  • Установка и включение OpenSSH сервера и клиента.
  • Удалённый вход и выполнение команд через ssh.
  • Копирование и синхронизация файлов: scp, rsync, sftp.
  • Безопасная настройка и жёсткая политика доступа.

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

Установка OpenSSH: RHEL/Fedora и Ubuntu

По умолчанию многие Linux-дистрибутивы уже содержат клиент и/или сервер OpenSSH. Пакеты называются openssh, openssh-server и openssh-client.

Для RHEL/Fedora используйте yum/dnf и проверьте список установленных пакетов:

yum list installed | grep openssh  

В Ubuntu клиент обычно присутствует как openssh-client; сервер поставляется в пакете openssh-server. Список пакетов можно получить через dpkg:

sudo dpkg --list | grep openssh  

Чтобы установить сервер в Ubuntu, выполните:

sudo apt-get install openssh-server  

Советы по локализации пакетов: в системах с apt используйте apt или apt-get, в системах с dnf — dnf.

Инициация и включение сервиса SSH

Управление службой OpenSSH зависит от дистрибутива, но в современных системах используется systemd.

Проверить статус сервиса:

systemctl status sshd.service # for Fedora and RHEL
systemctl status ssh # for Ubuntu

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

systemctl start sshd.service # for Fedora and RHEL
systemctl start ssh # for Ubuntu

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

systemctl enable sshd.service
systemctl enable ssh

Примечание: имена сервисов могут различаться. Используйте systemctl list-units | grep ssh для поиска точного имени.

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

Ниже — практическое описание часто используемых команд и сценариев.

Удалённый вход (Remote Login)

Команда ssh — наиболее частая при удалённой конфигурации сервера с запущенным sshd.

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

ssh ubuntu@X.X.X.X

Локальный вход на тот же хост для теста:

ssh localhost

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

Завершение сеанса: команда exit или сочетание ~. (тильда затем точка) для форсированного закрытия соединения.

Удалённое выполнение команд (Remote Execution)

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

Пример: выполнить hostname на удалённом хосте от имени пользователя ubuntu:

ssh ubuntu@X.X.X.X hostname

Если команда содержит аргументы или несколько команд, возьмите их в кавычки:

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

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

Пример с X11-пересылкой (сначала включите X11 Forwarding в /etc/ssh/sshd_config):

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

Важно: X11 требует корректной настройки серверной части (X11Forwarding yes) и наличия X-сервера на клиенте.

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

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

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

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

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

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

Ограничения scp:

  • по умолчанию заменяет уже существующие файлы; не умеет эффективно синхронизировать дельты;
  • при некоторых вариантах может не сохранять все атрибуты (время/права) без флага -p.

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

ls -l /etc/demo /tmp/demo  

Иллюстрация изменения прав и времени из-за scp

Повторный вызов scp перезапишет файлы и обновит временные метки:

SCP переписывает файл и обновляет метку времени

Флаг -p помогает сохранять метку времени и права:

scp -p ubuntu@X.X.X.X:/path/to/file /local/path

Но для инкрементных бэкапов и сохранения атрибутов предпочтительнее rsync.

Пример rsync для архивации и подробного вывода:

rsync -av ubuntu@X.X.X.X:/home/ubuntu/demo /tmp  

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

rsync сохраняет временные метки и права и при повторном запуске не копирует уже синхронизированные файлы:

Список директорий после синхронизации rsync

Совет: добавьте флаг –delete, если нужно зеркально синхронизировать целевой каталог, но будьте осторожны — это удалит файлы.

Безопасная настройка SSH: быстрые рекомендации

Ниже — практические шаги для жёсткой политики доступа.

  • Используйте аутентификацию по ключам (public key). Коротко: на клиенте выполните ssh-keygen и затем скопируйте ключ на сервер через ssh-copy-id.
  • Отключите парольную аутентификацию, когда ключи настроены: в /etc/ssh/sshd_config установите PasswordAuthentication no.
  • Запретите вход под root: PermitRootLogin no.
  • Ограничьте доступ по IP или с помощью tcpwrappers/фаервола (ufw/iptables/firewalld).
  • Поменяйте порт по умолчанию (22) только при необходимостях, помня о совместимости.
  • Включите и настройте Fail2Ban для защиты от брутфорса.
  • Ограничьте используемые алгоритмы и ключи в /etc/ssh/sshd_config, чтобы отключить слабые шифры.

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

ssh-copy-id ubuntu@X.X.X.X

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

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

Когда SSH не подходит — типичные ограничения

  • Низкая пропускная способность сети: при худом соединении интерактивная сессия может быть неудобна.
  • Доступ к GUI-приложениям сложнее без X11 или VNC.
  • Если требуется массовая синхронизация огромных объёмов, может понадобиться специализированный инструмент для передачи (например, block-level репликация).
  • В средах с жёсткой сетевой сегрегацией SSH может блокироваться политиками безопасности.

Альтернативы и их области применения

  • telnet — устарел, передаёт всё в открытом виде, использовать нельзя для безопасного доступа.
  • sftp — безопасная замена FTP, полезен для интерактивной работы с файлами.
  • scp — прост для одноразовых копий, но rsync лучше для бэкапов и синхронизации.
  • VPN + SMB/NFS — пригодны, если нужно сетевое монтирование и обмен файлами между серверами в пределах защищённой сети.

Чек-лист для ролей

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

  • Установить openssh-server.
  • Настроить аутентификацию по ключам.
  • Отключить вход под root.
  • Включить журналирование и мониторинг.

DevOps/инженер развертывания:

  • Настроить автоматическое развёртывание ключей.
  • Настроить rsync/CI задачи для синхронизации.
  • Проверить резервный доступ через консоль провайдера.

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

  • Сгенерировать SSH-ключи локально.
  • Хранить приватный ключ в защищённом месте.
  • Использовать ssh-agent для удобной работы с ключами.

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

  • Сервер отвечает на ssh-запрос и принимает подключение по ключу.
  • Парольная аутентификация отключена (если политика требует).
  • root-подключение запрещено.
  • rsync корректно синхронизирует данные и сохраняет метаданные (время, права).
  • Логи составаются и содержат информацию о попытках подключения.

Мини-методология быстрой настройки (SOP)

  1. Установить пакет openssh-server.
  2. Сгенерировать ключи на клиенте: ssh-keygen -t rsa -b 4096.
  3. Скопировать публичный ключ: ssh-copy-id user@host.
  4. Проверить подключение по ключу.
  5. Отключить PasswordAuthentication в /etc/ssh/sshd_config и перезапустить sshd.
  6. Настроить Fail2Ban/фаервол.

Примеры тест-кейсов / критерии приёмки для rsync

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

Небольшой глоссарий — однострочно

  • ssh: клиент для защищённого удалённого доступа.
  • sshd: демон SSH на сервере.
  • scp: простое копирование файлов через SSH.
  • rsync: инструмент для синхронизации файлов по сети с поддержкой дельт.
  • ssh-keygen: генерация ключей SSH.

Примечание о конфиденциальности и соответствии

SSH сам по себе обеспечивает конфиденциальность передачи. Для соответствия требованиям GDPR/локального законодательства убедитесь, что:

  • доступ к журналам ограничен;
  • ключи и конфигурации хранятся в защищённых местах;
  • есть политика ротации ключей и контроля доступа.

Частые ошибки и как их исправить

  • Проблема: при настройке PasswordAuthentication no вы потеряли доступ. Решение: используйте консоль провайдера или восстановите доступ через VNC/serial.
  • Проблема: rsync удаляет нужные файлы при –delete. Решение: протестируйте команду с –dry-run и проверьте список удаляемых файлов.
  • Проблема: scp переписывает файлы и ломает временные метки. Решение: используйте scp -p или перейдите на rsync -av.

Итого — краткое резюме

SSH остаётся стандартом для защищённого удалённого управления Linux-серверами. Для одноразовой передачи файлов подойдёт scp, но для резервного копирования и регулярной синхронизации лучше использовать rsync. Всегда настраивайте аутентификацию по ключам и следуйте базовым рекомендациям по безопасности.

Смотрите также: Секьюрное копирование файлов в Linux с помощью команды scp — полезная статья для практики.

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

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

Как разобрать и почистить контроллер Xbox One
Ремонт контроллеров

Как разобрать и почистить контроллер Xbox One

Удалённый доступ к Windows 10/11 с Mac — настройка
Инструкции

Удалённый доступ к Windows 10/11 с Mac — настройка

Удалённый доступ к Home Assistant через Tailscale
Smart Home

Удалённый доступ к Home Assistant через Tailscale

Руководство по Google Collections для изображений
Инструменты Google

Руководство по Google Collections для изображений

Termscp — TUI файловый менеджер для удалённых серверов
Инструменты

Termscp — TUI файловый менеджер для удалённых серверов

Портретный режим на Mac — размыть фон в любых приложениях
Руководство

Портретный режим на Mac — размыть фон в любых приложениях