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

В этой статье, мы раcсмотрим наиболее эффективные способы передачи файлов с ПК на VPS.

Основные способы передачи данных с локального компьютера на сервер

Существует несколько часто используемых способов передачи файлов между ПК и серверами на Linux. Выбор способа зависит от объема данных, необходимости автоматизации, и ваших предпочтений. Вот основные из них:

  1. SCP (Secure Copy Protocol): Инструмент командной строки, основанный на SSH, предназначенный для простого и быстрого копирования файлов.
  2. SFTP (SSH File Transfer Protocol): Протокол передачи файлов, который также работает поверх SSH. Используется как в терминале, так и через графические клиенты.
  3. Rsync (Remote Synchronization): Инструмент для эффективной синхронизации каталогов и файлов, минимизирующий объём передаваемых данных.
  4. Службы облачного хранения или 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 в терминале

  1. Установите соединение: sftp имя_пользователя@IP_сервера
  2. После ввода пароля вы попадёте в интерактивную среду 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).

 

Процесс настройки:

  1. Генерация ключей на локальном ПК: ssh-keygen -t rsa -b 4096 

    Следуйте инструкциям, при желании установите парольную фразу (passphrase) для дополнительной защиты приватного ключа. Приватный ключ обычно храниться в ~/.ssh/id_rsa, а публичный — в ~/.ssh/id_rsa.pub. 

  2. Копирование публичного ключа на 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-ПК, вы можете:

  1. Для быстрой передачи одного-двух файлов — используйте SCP.
  2. Для интерактивной работы и управления файлами — используйте SFTP.
  3. Для больших объёмов данных, синхронизации и резервного копирования — используйте Rsync.

Советы по безопасности при работе с удалённым сервером

Безопасность является ключевым аспектом при работе с VPS. Следуйте этим советам, чтобы минимизировать риски:

  1. Используйте SSH-ключи: Полностью откажитесь от парольной аутентификации в пользу SSH-ключей и отключите вход по паролю на сервере.
  2. Измените стандартный SSH-порт: Изменение порта по умолчанию (22) на другой (например, 2222) снизит количество автоматических сканирований и попыток подбора паролей.
  3. Используйте сильные пароли: Если вы всё же используете парольную аутентификацию, пароли должны быть длинными и сложными. Для SSH-ключей используйте надёжные парольные фразы.
  4. Регулярно обновляйте систему: Убедитесь, что ваш VPS и локальный ПК имеют последние обновления безопасности.
  5. Настройте брандмауэр: Используйте ufw или firewalld для ограничения доступа только к необходимым портам.