Как загрузить файл на сервер по ssh windows — вопрос, который часто возникает у разработчиков и системных администраторов. В большинстве случаев для этого используют протоколы SCP или SFTP, так как они работают поверх и обеспечивают безопасную передачу данных. не имеет встроенных инструментов для SSH, но есть проверенные решения: PuTTY, WinSCP, FileZilla или встроенный OpenSSH в Windows 10/11.
В этой статье разберём все способы: от командной строки до графических интерфейсов. Вы узнаете, как загрузить один файл или целую папку, какие команды использовать и на что обратить внимание при настройке подключения.
Подготовка: что нужно для загрузки файлов по SSH
Перед тем как загрузить файл на сервер по с Windows, убедитесь, что выполнены базовые условия:
- На сервере установлен и запущен SSH-сервер (обычно
sshdна Linux). - У вас есть логин и пароль или SSH-ключ для доступа.
- На сервере достаточно места в целевой директории.
- Порт SSH (по умолчанию 22) открыт в брандмауэре.
Если сервер на Linux, проверьте доступность командой sudo systemctl status ssh. В Windows Server SSH нужно устанавливать отдельно через Добавление компонентов.
Если вы подключаетесь к удалённому серверу в первый раз, используйте SSH-ключи вместо пароля — это безопаснее и удобнее для автоматизации. Сгенерировать ключ можно командой ssh-keygen -t ed25519 в или WSL.
| Инструмент | Тип интерфейса | Поддерживаемые протоколы | Плюсы | Минусы |
|---|---|---|---|---|
| WinSCP | Графический | SFTP, SCP, FTP | Удобный drag-and-drop, интеграция с PuTTY | Требует установки |
| FileZilla | Графический | SFTP, FTP, FTPS | Кросс-платформенный, бесплатный | Меньше функций для SSH |
scp (в PowerShell) | Командная строка | SCP | Быстро, без установки дополнительных программ | Сложно для новичков |
sftp (в PowerShell) | Командная строка | SFTP | Гибкость, работа с файлами как в файловом менеджере | Нет графического интерфейса |
Способы загрузки файлов: сравнение инструментов
В есть несколько способов загрузить файлы на сервер по SSH. Каждый подходит для разных задач:
Для одноразовой загрузки подойдёт scp в PowerShell. Если нужно часто работать с файлами — лучше установить WinSCP.
Загрузка файлов через в PowerShell
SCP (Secure Copy Protocol) — самый простой способ загрузить файл на сервер по с без дополнительных программ. В Windows 10/11 есть встроенный клиент scp, который работает из PowerShell.
Синтаксис команды:
scp [опции] локальный_файл пользователь@сервер:путь/на/сервере
Примеры:
- Загрузить один файл
test.txtв домашнюю директорию пользователяuserна сервере192.168.1.100:scp C:\Files\test.txt user@192.168.1.100:~ - Загрузить файл с нестандартным портом (например, 2222):
scp -P 2222 C:\Files\test.txt user@192.168.1.100:/var/www/html - Загрузить папку рекурсивно (включая все подпапки):
scp -r C:\Project user@192.168.1.100:/home/user/backup
Если сервер запрашивает пароль, введите его в консоли. Для удобства можно использовать SSH-ключи.
Загрузка файлов через в командной строке
SFTP (SSH File Transfer Protocol) — более гибкий инструмент, чем SCP. Он позволяет не только загружать/скачивать файлы, но и управлять ими на сервере: создавать папки, удалять файлы, менять права доступа.
Чтобы загрузить файл через SFTP:
- Подключитесь к серверу:
sftp user@192.168.1.100 - Введите пароль или используйте SSH-ключ.
- Перейдите в нужную директорию на сервере:
cd /var/www/html - Загрузите файл с локального компьютера:
put C:\Files\test.txt - Для загрузки папки рекурсивно:
put -r C:\Project
Если нужно загрузить файл с другим именем, используйте:
put C:\Files\test.txt remote_name.txt
⚠️ Внимание: При работе сsftpв командной строке пути к файлам на указывайте с двумя обратными слэшами (C:\\Files\\test.txt) или используйте прямые слэши (C:/Files/test.txt). Иначе команда не сработает.
Сравнение и SFTP: что выбрать?
Оба протокола работают через SSH, но у них разные возмажности. Выбор зависит от задачи:
| Критерий | SCP | SFTP |
|---|---|---|
| Скорость передачи | Выше (оптимизирован для копирования) | Немного ниже (больше служебного трафика) |
| Управление файлами | Только загрузка/скачивание | Полный набор команд (ls, mkdir, и др.) |
| Шифрование | Да | Да |
| Поддержка в Windows | Встроен в PowerShell (Windows 10+) | Встроен в PowerShell (Windows 10+) |
| Сложность использования | Проще для одноразовых задач | Удобнее для работы с множеством файлов |
Если нужно быстро загрузить один файл — используйте SCP. Если требуется управлять файлами на сервере — выбирайте SFTP.
Загрузка файлов через WinSCP
WinSCP — бесплатный графический клиент для Windows, который поддерживает SFTP, SCP, и WebDAV. Это один из самых удобных способов загрузить файл на сервер по для пользователей, которые не любят командную строку.
Пошаговая инструкция:
- Скачайте и установите WinSCP с официального сайта.
- Запустите программу и создайте новое подключение:
- Протокол:
SFTPилиSCP. - Имя хоста: IP-адрес или домен сервера.
- Порт: 22 (по умолчанию) или другой, если на сервере настроен нестандартный порт.
- Имя пользователя и пароль (или укажите путь к приватному SSH-ключу).
- Протокол:
- Нажмите
Войтии подтвердите подключение (если появится предупреждение о новом хосте). - В левой части окна откроется локальный файловый менеджер, в правой — удалённый. Перетащите файлы мышью из одной части в другую.
Как настроить синхронизацию папок в WinSCP
В WinSCP есть функция синхронизации папок: выберите локальную и удалённую директории, затем нажмите Команды → Синхронизировать. Программа покажет разницу между папками и предложит скопировать недостающие файлы в обе стороны. Это удобно для резервного копирования или развёртывания проектов.
Практика: загрузка файлов на сервер по SSH
Рассмотрим самый универсальный сценарий: у вас есть локальный файл index.html, который нужно загрузить в папку /var/www/html на сервере с IP 192.168.1.100. Доступ по настроен на стандартном порту 22.
Варианты действий:
- Через в PowerShell:
scp C:\Projects\site\index.html user@192.168.1.100:/var/www/html - Через в PowerShell:
sftp user@192.168.1.100→cd /var/www/html→put C:\Projects\site\index.html - Через WinSCP:
Подключитесь к серверу, перейдите в
/var/www/htmlна сервере и вC:\Projects\siteлокально, затем перетащите файл мышью.
Если файл нужно загрузить с правами доступа 644 (стандарт для веб-файлов), используйте scp с опцией -p для сохранения прав:
scp -p C:\Projects\site\index.html user@192.168.1.100:/var/www/html
Чек-лист перед загрузкой файлов на сервер
Часто задаваемые вопросы
Можно ли загрузить файл на сервер по без пароля?
Да, если настроить аутентификацию по SSH-ключам. Сгенерируйте пару ключей (ssh-keygen), загрузите публичный ключ на сервер в файл ~/.ssh/authorized_keys, и подключение будет проходить без запроса пароля. Это удобно для автоматизации и скриптов.
Как загрузить папку с подпапками по SSH?
Используйте опцию -r (рекурсивно) в scp или sftp. Пример для SCP:
scp -r C:\Project user@192.168.1.100:/home/user.
В просто перетащите папку мышью — программа скопирует её со всеми вложенными файлами.
Почему при загрузке файла по возникает ошибка "Permission denied"?
Ошибка означает, что у пользователя нет прав на запись в целевую директорию. Проверьте:
- Права на папку на сервере (
ls -la). - Пользователь, от имени которого вы подключаетесь, имеет доступ к папке.
- На сервере не включён
chmodилиchownдля ограничения доступа.
chmod 755 /путь/к/папке или подключитесь от имени пользователя с нужными правами.
Какая максимальная скорость загрузки файлов по SSH?
Скорость зависит от:
- Пропускной способности канала (интернет на вашем компьютере и сервере).
- Нагрузки на сервер (CPU, диск).
- Протокола (SCP обычно быстрее на 10–20%).
- Шифрования (AES-128 быстрее, чем AES-256).
rsync поверх или сжать файлы перед загрузкой.