Когда работаешь с виртуальным частным сервером (VPS) с Linux ОС, может возникнуть потребность передачи файлов с локального компьютера на удаленный сервер или наоборот. Передача файлов может понадобиться для развертывания веб-сайтов, загрузки файлов конфигурации, установки ПО и других программ.
В этой статье, мы раcсмотрим наиболее эффективные способы передачи файлов с ПК на VPS.

Основные способы передачи данных с локального компьютера на сервер
Существует несколько часто используемых способов передачи файлов между ПК и серверами на Linux. Выбор способа зависит от объема данных, необходимости автоматизации, и ваших предпочтений. Вот основные из них:
- SCP (Secure Copy Protocol): Инструмент командной строки, основанный на SSH, предназначенный для простого и быстрого копирования файлов.
- SFTP (SSH File Transfer Protocol): Протокол передачи файлов, который также работает поверх SSH. Используется как в терминале, так и через графические клиенты.
- Rsync (Remote Synchronization): Инструмент для эффективной синхронизации каталогов и файлов, минимизирующий объём передаваемых данных.
- Службы облачного хранения или Git-репозитории: Могут использоваться как промежуточное звено, хотя это не прямая передача.
Как использовать SCP для копирования файлов на удалённый сервер
SCP — один из самых простых и распространенных способов копирования файлов. Эта утилита работает поверх SSH (Secure Shell) и обеспечивает безопасное соединение и шифрование для передачи файлов.
Базовый синтаксис команды для копирования файла с локального ПК на VPS выглядит следующим образом:
scp /путь/к/локальному/файлу имя_пользователя@IP_сервера:/путь/на/сервере
Для начала копирования, вам нужно открыть командную строку на рабочей станции.
Допустим, вы хотите загрузить файл index.html из вашей домашней папки на сервер с IP 192.168.1.1 в папку /var/www/html/. Тогда команда будет выглядеть следующим образом:
scp ~/index.html user@192.168.1.1:/var/www/html/
Для копирования целой директории используйте опцию -r:
scp -r /путь/к/локальной/папке имя_пользователя@IP_сервера:/путь/на/сервере
При первом копировании, вам предложат подтвердить подлинность хоста и ввести пароль пользователя на VPS.
Передача данных через SFTP
SFTP — это интерактивный протокол, который позволяет не только копировать, но и управлять файлами (переименовывать, удалять, создавать каталоги) на удалённом сервере. SFTP работает поверх SSH, обеспечивая высокий уровень безопасности.
Использование SFTP в терминале
- Установите соединение: sftp имя_пользователя@IP_сервера
- После ввода пароля вы попадёте в интерактивную среду SFTP.
Используйте следующие команды:
- ls или lls: Просмотр файлов на сервере или локально (с l).
- cd или lcd: Смена каталога на сервере или локально (с l).
- put local_file: Загрузить файл с локального ПК на сервер.
- get remote_file: Скачать файл с сервера на локальный ПК.
- exit или quit: Закрыть соединение.
Использование графических SFTP-клиентов
Для пользователей, предпочитающих графический интерфейс, существуют популярные клиенты, такие как FileZilla, WinSCP (для Windows) или Cyberduck (для macOS/Windows).

Это интересно: VPS-хостинг на Windows: настройка и советы по использованию
Настройка SSH-ключей для безопасной передачи файлов
Использование SSH-ключей является золотым стандартом безопасности.
Вместо пароля для аутентификации используется пара криптографических ключей: приватный (хранится на вашем ПК) и публичный (загружается на VPS).
Процесс настройки:
- Генерация ключей на локальном ПК: ssh-keygen -t rsa -b 4096
Следуйте инструкциям, при желании установите парольную фразу (passphrase) для дополнительной защиты приватного ключа. Приватный ключ обычно храниться в ~/.ssh/id_rsa, а публичный — в ~/.ssh/id_rsa.pub.
- Копирование публичного ключа на VPS. Используйте утилиту: ssh-copy-id: ssh-copy-id имя_пользователя@IP_сервера
Вам будет предложено ввести пароль один раз, после чего публичный ключ будет добавлен в файл ~/.ssh/authorized_keys на сервере.
После этого SCP и SFTP будут использовать ключи для аутентификации без запроса пароля.

Часто спрашивают: Основы SSH: как использовать и список полезных команд
Как использовать rsync для синхронизации каталогов между ПК и VPS
Rsync — это мощная утилита для быстрого и эффективного копирования файлов. Её ключевая особенность в том, что она копирует только изменённые части файлов, что значительно экономит время и трафик при последующих передачах. Rsync часто используется для резервного копирования и синхронизации каталогов.
Базовый синтаксис для синхронизации локального каталога с удалённым:
rsync -avz /путь/к/локальному/каталогу/ имя_пользователя@IP_сервера:/путь/на/сервере
Здесь:
- a (archive): Режим архива, который включает рекурсивное копирование, сохранение символических ссылок, прав, владельцев и меток времени.
- v (verbose): Выводит подробную информацию о процессе.
- z (compress): Сжимает данные во время передачи, ускоряя процесс.
Важно: Слеш (/) в конце пути локального каталога означает, что будет скопировано содержимое каталога, а не сам каталог. Без слеша будет скопирован сам каталог вместе со всем содержимым.
Пример:
Синхронизация папки project_files с сервером:
rsync -avz ~/project_files/ user@192.168.1.1:/home/user/deploy/
Rsync также использует SSH для обеспечения безопасности, поэтому при наличии SSH-ключей пароль не потребуется.
Как отправить файлы на VPS через терминал Linux
Все описанные выше способы (SCP, SFTP, Rsync) — это и есть основные методы отправки файлов на VPS через терминал Linux.
Для краткого резюме, если вы уже находитесь в терминале локального Linux-ПК, вы можете:
- Для быстрой передачи одного-двух файлов — используйте SCP.
- Для интерактивной работы и управления файлами — используйте SFTP.
- Для больших объёмов данных, синхронизации и резервного копирования — используйте Rsync.
Советы по безопасности при работе с удалённым сервером
Безопасность является ключевым аспектом при работе с VPS. Следуйте этим советам, чтобы минимизировать риски:
- Используйте SSH-ключи: Полностью откажитесь от парольной аутентификации в пользу SSH-ключей и отключите вход по паролю на сервере.
- Измените стандартный SSH-порт: Изменение порта по умолчанию (22) на другой (например, 2222) снизит количество автоматических сканирований и попыток подбора паролей.
- Используйте сильные пароли: Если вы всё же используете парольную аутентификацию, пароли должны быть длинными и сложными. Для SSH-ключей используйте надёжные парольные фразы.
- Регулярно обновляйте систему: Убедитесь, что ваш VPS и локальный ПК имеют последние обновления безопасности.
- Настройте брандмауэр: Используйте ufw или firewalld для ограничения доступа только к необходимым портам.