Как загрузить файл на сервер по 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:

  1. Подключитесь к серверу: sftp user@192.168.1.100
  2. Введите пароль или используйте SSH-ключ.
  3. Перейдите в нужную директорию на сервере: cd /var/www/html
  4. Загрузите файл с локального компьютера: put C:\Files\test.txt
  5. Для загрузки папки рекурсивно: put -r C:\Project

Если нужно загрузить файл с другим именем, используйте: put C:\Files\test.txt remote_name.txt

⚠️ Внимание: При работе с sftp в командной строке пути к файлам на указывайте с двумя обратными слэшами (C:\\Files\\test.txt) или используйте прямые слэши (C:/Files/test.txt). Иначе команда не сработает.
Какой инструмент вы используете для загрузки файлов по SSH?
SCP в PowerShell
WinSCP
FileZilla
Другой

Сравнение и SFTP: что выбрать?

Оба протокола работают через SSH, но у них разные возмажности. Выбор зависит от задачи:

КритерийSCPSFTP
Скорость передачиВыше (оптимизирован для копирования)Немного ниже (больше служебного трафика)
Управление файламиТолько загрузка/скачиваниеПолный набор команд (ls, mkdir, и др.)
ШифрованиеДаДа
Поддержка в WindowsВстроен в PowerShell (Windows 10+)Встроен в PowerShell (Windows 10+)
Сложность использованияПроще для одноразовых задачУдобнее для работы с множеством файлов

Если нужно быстро загрузить один файл — используйте SCP. Если требуется управлять файлами на сервере — выбирайте SFTP.

Загрузка файлов через WinSCP

WinSCP — бесплатный графический клиент для Windows, который поддерживает SFTP, SCP, и WebDAV. Это один из самых удобных способов загрузить файл на сервер по для пользователей, которые не любят командную строку.

Пошаговая инструкция:

  1. Скачайте и установите WinSCP с официального сайта.
  2. Запустите программу и создайте новое подключение:
    • Протокол: SFTP или SCP.
    • Имя хоста: IP-адрес или домен сервера.
    • Порт: 22 (по умолчанию) или другой, если на сервере настроен нестандартный порт.
    • Имя пользователя и пароль (или укажите путь к приватному SSH-ключу).
  3. Нажмите Войти и подтвердите подключение (если появится предупреждение о новом хосте).
  4. В левой части окна откроется локальный файловый менеджер, в правой — удалённый. Перетащите файлы мышью из одной части в другую.
Как настроить синхронизацию папок в WinSCP

В WinSCP есть функция синхронизации папок: выберите локальную и удалённую директории, затем нажмите Команды → Синхронизировать. Программа покажет разницу между папками и предложит скопировать недостающие файлы в обе стороны. Это удобно для резервного копирования или развёртывания проектов.

Практика: загрузка файлов на сервер по SSH

Рассмотрим самый универсальный сценарий: у вас есть локальный файл index.html, который нужно загрузить в папку /var/www/html на сервере с IP 192.168.1.100. Доступ по настроен на стандартном порту 22.

Варианты действий:

  1. Через в PowerShell: scp C:\Projects\site\index.html user@192.168.1.100:/var/www/html
  2. Через в PowerShell: sftp user@192.168.1.100 → cd /var/www/html → put C:\Projects\site\index.html
  3. Через 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

Чек-лист перед загрузкой файлов на сервер

Выполнено: 0 / 4

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

Можно ли загрузить файл на сервер по без пароля?

Да, если настроить аутентификацию по 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 поверх или сжать файлы перед загрузкой.