Безопасная передача файлов с помощью SCP, SFTP и rsync
Перемещайте файлы между компьютерами по зашифрованному каналу SSH. Сравните scp, sftp и rsync, изучите их основные параметры и выбирайте подходящий инструмент для разовых копирований, интерактивной передачи и эффективной синхронизации.
«Безопасная передача файлов с помощью 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 — локальная установка не требуется.
Все уроки этого курса
- Перенаправление портов SSH (локальное и удалённое)
- Туннели SSH и прокси SOCKS
- Агент SSH и многоступенчатые подключения
- Безопасная передача файлов с помощью SCP, SFTP и rsync