Копирование файлов с Windows на через SSH — задача, с которой сталкиваются системные администраторы, разработчики и просто пользователи, работающие с удалёнными серверами. Сделать это можно несколькими способами: через командную строку с утилитами вроде scp или rsync, с помощью графических клиентов типа WinSCP, или даже через PowerShell. Каждый метод имеет свои плюсы и минумы, и выбор зависит от объёма данных, частоты передачи и уровня комфорта с консолью.
В этой статье разберём все рабочие варианты — от самых простых до продвинутых, с примерами команд и пошаговыми инструкциями. Начнём с самого популярного и универсального способа.
Способ 1: Используем для копирования файлов через SSH
SCP (Secure Copy Protocol) — это стандартный инструмент для безопасной передачи файлов по SSH. Он встроен в большинство Linux-дистрибутивов и доступен в через клиенты вроде Git Bash, Cygwin или WSL. Основное преимущество — простота: одна команда файл или папку на удалённый сервер.
Пример команды для копирования одного файла с Windows-машины на Linux-сервер:
scp C:\путь\к\файлу.txt пользователь@ip_адрес_сервера:/путь/на/сервере/
Для копирования всей папки (включая подкаталоги) добавляем флаг -r:
scp -r C:\путь\к\папке\ пользователь@ip_адрес_сервера:/путь/на/сервере/
Если в пути к файлу есть пробелы, оберните его в кавычки: " документы\файл.txt". В Linux-путях пробелы экранируются обратным слэшем: /home/user/my\ folder/.
| Инструмент | Тип интерфейса | Скорость передачи | Поддержка Windows | Особенности |
|---|---|---|---|---|
scp |
Командная строка | Средняя | Через Git Bash, WSL | Простота, встроен в Linux |
rsync |
Командная строка | Высокая (дельта-синхронизация) | Через WSL, Cygwin | Экономит трафик, синхронизирует изменения |
| WinSCP | Графический | Средняя | Да | Интуитивный интерфейс, поддержка SFTP |
| FileZilla | Графический | Средняя | Да | Поддержка FTPS/SFTP, менеджер сайтов |
Сравнение инструментов для копирования файлов по SSH
Не все методы одинаково удобны. В зависимости от задачи можно выбрать подходящий инструмент. Ниже таблица с сравнением основных способов.
Как настроить подключение по перед копированием
Прежде чем копировать файлы, нужно убедиться, что SSH-сервер на Linux-машине запущен и доступен, а на есть клиент для подключения. Вот что нужно сделать:
- На Linux-сервере: Убедитесь, что.service SSH запущен. В большинстве дистрибутивов это
sshd. Проверить можно командойsudo systemctl status ssh. Если не работает — запустите:sudo systemctl start ssh. - На Windows: Установите клиент для работы с SSH. Самые популярные варианты:
- OpenSSH (входит в состав Windows 10/11, включается через «Компоненты Windows»)
- Git Bash (входит в пакет Git for Windows)
- PuTTY (для подключения, но не для копирования файлов напрямую)
- Проверка подключения: Попробуйте подключиться к серверу командой
ssh пользователь@ip_адрес. Если запрашивает пароль — всё работает.
Без работающего SSH-соединения копирование файлов невозможно, поэтому этот шаг обязателен.
Пошаговая инструкция по копированию через WinSCP
WinSCP — один из самых популярных графических клиентов для Windows, который позволяет копировать файлы по SSH/SFTP. интерфейс интуитивно понятен даже новичкам.
- Скачайте и установите WinSCP с официального сайта.
- Запустите программу. В окне подключения выберите протокол
SFTP(он работает через SSH). - Введите данные для подключения:
- Имя хоста: IP-адрес или домен Linux-сервера.
- Имя пользователя: ваш логин на сервере.
- Пароль: пароль от учётной записи (или используйте ключи SSH).
- Нажмите «Войти». Если подключение успешно, откроется окно с двумя панелями: локальной (Windows) и удалённой (Linux).
- Перетащите файлы или папки из локальной панели в удалённую — копирование начнётся автоматически.
WinSCP не только копирует файлы, но и позволяет редактировать их напрямую на сервере, менять разрешения (chmod) и создавать каталоги.
⚠️ Внимание: При первом подключении WinSCP может выдать предупреждение о незнакомом ключе сервера. Это нормально — подтвердите подключение, если вы уверены в безопасности сервера.
Синхранизация файлов с помощью rsync
rsync — мощный инструмент для синхронизации файлов и каталогов. В отличие от scp, он копирует только изменившиеся части файлов, что значительно экономит время и трафик при повторных копированиях.
Пример команды для синхронизации папки с на через или Git Bash:
rsync -avz -e ssh C:\путь\к\папке\ пользователь@ip_адрес:/путь/на/сервере/
Расшифровка флагов:
-a— архивный режим (сохраняет права доступа, владельца, временные метки).-v— подробный вывод (показывает, какие файлы копируются).-z— сжатие данных при передаче.-e ssh— использование для передачи.
Флаг rsync |
Описание | Пример использования |
|---|---|---|
--delete |
Удаляет файлы в целевом каталоге, которых нет в исходном | rsync -avz --delete ... |
--progress |
Показывает прогресс копирования | rsync -avz --progress ... |
--dry-run |
Показывает, что будет скопировано, без реального копирования | rsync -avz --dry-run ... |
--exclude |
Исключает файлы или папки из копирования | rsync -avz --exclude='*.tmp' ... |
Работа с ключами для безопасного копирования
Использование паролей для аутентификации по удобно, но не всегда безопасно. Ключи SSH — это более надёжный способ, особенно если вы копируете файлы автоматически (например, через скрипты).
Процесс настройки:
- Сгенерируйте пару ключей на Windows-машине с помощью команды
ssh-keygen -t ed25519(или-t rsaдля старых систем). Ключи сохранятся вC:\Users\ ваше_имя\.ssh\. - Скопируйте открытый ключ (
id_ed25519.pub) на Linux-сервер командойssh-copy-id пользователь@ip_адрес. Если этой команды нет, скопируйте содержимое файла вручную в~/.ssh/authorized_keysна сервере. - Проверьте подключение:
ssh пользователь@ip_адрес. Если не запросит пароль — всё работает.
Что делать, если SSH-ключи не работают?
Проверьте права напрямую на сервере: chmod 600 ~/.ssh/authorized_keys и chmod 700 ~/.ssh. Убедитесь, что в конфиге SSH-сервера (/etc/ssh/sshd_config) включены строки PubkeyAuthentication yes и AuthorizedKeysFile .ssh/authorized_keys. После изменений перезапустите SSH: sudo systemctl restart sshd.
Практика: Копируем файлы с на за 5 минут
Чтобы не терять время на поиск информации, вот краткий чек-лист действий для самого быстрого способа — через WinSCP:
Быстрое копирование файлов через WinSCP
Часто задаваемые вопросы
Можно ли копировать файлы через без пароля?
Да, если настроить аутентификацию по SSH-ключам. Сгенерируйте пару ключей на Windows, добавьте открытый ключ в ~/.ssh/authorized_keys на Linux-сервере, и подключение будет происходить без ввода пароля.
Как скопировать файл с на через SSH?
Используйте scp в обратную сторону: scp пользователь@ip_адрес:/путь/к/файлу C:\путь\на\Windows\. В WinSCP просто перетащите файл с удалённой панели на локальную.
Почему scp выдаёт ошибку "Permission denied"?
Обычно это означает отсутствие прав на запись в целевой каталог на Linux-сервере. Проверьте разрешения командой ls -ld /путь/к/каталогу и измените их при необходимости (chmod или chown). Также убедитесь, что указываете правильный путь и логин.
Какий способ быстрее: scp или rsync?
rsync обычно быстрее при повторных копированиях, так как передаёт только изменившиеся части файлов. scp копирует файлы целиком. Для первой передачи разница минимальна, но для синхронизации больших каталогов rsync выигрывает.