Linux Server Deployment & SSH Mastery · Урок

Безопасная передача файлов с помощью SCP, SFTP и rsync

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

Урок 4 из 413 шагов

«Безопасная передача файлов с помощью SCP, SFTP и rsync» — бесплатный урок Linux Server Deployment & SSH Mastery на CoddyKit. Это урок 4 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Linux Server Deployment & SSH Mastery, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Linux Server Deployment & SSH Mastery содержит 4 уроков всего.

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

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

Через SSH работают три инструмента: scp для быстрого копирования, sftp для интерактивных сеансов и rsync для эффективной синхронизации.

scp: простое копирование

scp работает почти так же, как cp, но между разными компьютерами. Для удалённой стороны используется синтаксис user@host:path.

Эта команда загружает локальный файл на сервер.

scp report.pdf deploy@server:/home/deploy/docs/

scp: загрузка и каталоги

Поменяйте порядок аргументов, чтобы скачать файл. Добавьте -r, чтобы рекурсивно скопировать целые каталоги.

scp deploy@server:/var/log/app.log ./
scp -r deploy@server:/etc/myapp ./backup/

scp с нестандартным портом и ключами

Если сервер использует нестандартный порт, обратите внимание: scp использует заглавный параметр -P (в отличие от строчного -p у ssh). Также можно указать конкретный ключ с помощью -i.

scp -P 2222 -i ~/.ssh/deploy_key file.txt deploy@server:/tmp/

sftp: интерактивная передача

sftp открывает интерактивный сеанс, похожий на приглашение FTP, но полностью зашифрованный. Вы перемещаетесь по каталогам и передаёте данные с помощью знакомых команд.

  • put file — загрузить
  • get file — скачать
  • ls, cd, pwd — навигация на удалённой стороне
  • lcd, lls — навигация на локальной стороне
sftp deploy@server
sftp> cd /var/www
sftp> put index.html
sftp> get backup.tar.gz

Чем rsync отличается от других инструментов

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

По умолчанию он также работает через SSH и обеспечивает такое же шифрование.

Основы использования rsync

Часто используют набор флагов -avz:

  • -a — режим архива (сохраняет права доступа, время и символические ссылки)
  • -v — подробный вывод
  • -z — сжимать данные во время передачи

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

rsync -avz ./site/ deploy@server:/var/www/site/

Конечные косые черты имеют значение

В rsync конечная косая черта у источника изменяет результат:

  • src/ — копирует содержимое src в место назначения
  • src — копирует сам каталог src в место назначения

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

rsync -avz src/  dest/   # contents of src into dest
rsync -avz src   dest/   # creates dest/src/

Зеркалирование и исключение файлов

--delete превращает место назначения в точное зеркало, удаляя файлы, которых нет в источнике. Используйте --exclude, чтобы пропускать пути.

Всегда сначала сочетайте эти параметры с --dry-run.

rsync -avz --delete --exclude '.git' --dry-run ./ deploy@server:/var/www/

rsync с нестандартной настройкой SSH

Чтобы использовать нестандартный порт или ключ, передайте явную команду ssh с помощью -e. Это также работает со всеми параметрами, настроенными в ~/.ssh/config.

rsync -avz -e 'ssh -p 2222 -i ~/.ssh/deploy_key' ./ deploy@server:/var/www/

Рекомендации

Передавайте файлы безопасно и эффективно:

  • Используйте scp для быстрых разовых копирований
  • Используйте sftp, когда требуется интерактивный просмотр каталогов
  • Используйте rsync для регулярной синхронизации и резервного копирования
  • Всегда выполняйте --dry-run перед использованием --delete

Быстрая проверка

Проверьте свои знания о безопасной передаче данных.

Итоги

Теперь Вы умеете безопасно передавать файлы через SSH:

  • scp — простое копирование (-r, -P, -i)
  • sftp — интерактивные сеансы put/get
  • rsync — эффективная синхронизация изменений с помощью -avz, --delete, --exclude

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

Можно начать бесплатно

Изучай Linux Server Deployment & SSH Mastery с ИИ-репетитором — бесплатно

Пиши и запускай код прямо в браузере, получай мгновенную помощь от ИИ-репетитора 24/7 и продолжи учиться на сайте или в приложении.

Курсы
12
Уроки
48

Часто задаваемые вопросы

Урок «Безопасная передача файлов с помощью SCP, SFTP и rsync» бесплатный?

Да — полный текст урока «Безопасная передача файлов с помощью SCP, SFTP и rsync» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Linux Server Deployment & SSH Mastery, подпишись на CoddyKit PRO. Курс Linux Server Deployment & SSH Mastery содержит 4 уроков всего.

Чему я научусь в уроке «Безопасная передача файлов с помощью SCP, SFTP и rsync»?

Перемещайте файлы между компьютерами по зашифрованному каналу SSH. Сравните scp, sftp и rsync, изучите их основные параметры и выбирайте подходящий инструмент для разовых копирований, интерактивной п… Ты практикуешь Linux Server Deployment & SSH Mastery с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать Linux Server Deployment & SSH Mastery?

Предыдущий опыт не требуется. Linux Server Deployment & SSH Mastery на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 4 из 4.

Сколько времени занимает урок «Безопасная передача файлов с помощью SCP, SFTP и rsync»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке Linux Server Deployment & SSH Mastery?

Да. Каждый урок Linux Server Deployment & SSH Mastery включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. Перенаправление портов SSH (локальное и удалённое)
  2. Туннели SSH и прокси SOCKS
  3. Агент SSH и многоступенчатые подключения
  4. Безопасная передача файлов с помощью SCP, SFTP и rsync
← Назад к Linux Server Deployment & SSH Mastery