Как подключиться к sftp серверу в windows

С помощью встроенного пакета OpenSSH для Windows вы можете легко настроить безопасную передачу файлов между клиентом и серверов Windows по защищенному протоколу передачи файлов SFTP (Secure FTP). В этой статье мы покажем, как установить и настроить установить SFTP сервер в Windows 10/11 или Windows Server 2022/2019/2016/2012R2 с помощью встроенных средств (Win32-OpenSSH).

Содержание:

  • Установка OpenSSH в Windows
  • Настройка SFTP сервера на базе OpenSSH в Windows
  • Подключение к SFTP серверу с помощью PowerShell и WinSCP
  • Настройка SFTP аутентификации по ключам

Протокол SFTP (Secure File Transfer Protocol , Secure FTP или SSH FTP) это расширение протокола SSH, являющимся стандартом мира UNIX/Linux систем. Хотя с точки зрения пользователей он похож на FTP, но на самом деле это абсолютно другой протокол, не имеющий с FTP ничего общего. Данные между клиентом и сервером передаются по порту 22 через SSH туннель.

Основные преимущества протокола SFTP:

  • Передача файлов и команд происходит внутри защищенной SSH-сессии;
  • Для передачи файлов и команд используется одно соединение;
  • Поддерживаются символические ссылки, доступны функций прерывания, возобновления передачи, удаления файла и другие;
  • Обычно на каналах, где FTP работает медленно или с перебоями, SFTP-соединение работает более надежно и быстро;
  • Возможность аутентификации с помощью SSH ключей.

Не нужно путать протоколы SFTP и FTPS. FTPS – это по сути обычный FTP с SSL сертификатом, а SFTP – это передача FTP данных и команд внутри SSH сессии.

В современные версии Windows по-умолчанию встроен порт OpenSSH для win32 (Win32-OpenSSH). Вы можете использовать его для организации защищенного SFTP сервера вместо таких сторониих продуктов как Core FTP, FileZilla, CYGWIN, OpenSSH, FTP Shell, IPSwitch и пр.

Установка OpenSSH в Windows

Пакет OpenSSH уже включен в операционную систему в современных билдах Windows 10 (начиная с 1803), Windows 11, Windows Server 2022/2019 в виде Feature on Demand (как и RSAT).

В этих версиях Windows вы можете установить сервер OpenSSH с помощью PowerShell:

Add-WindowsCapability -Online -Name OpenSSH.Server*

Или с помощью DISM:
dism /Online /Add-Capability /CapabilityName:OpenSSH.Server~~~~0.0.1.0

Также можно установить OpenSSH из графического интерфейса Windows 10 (Settings -> Apps -> Optional Features -> Add a feature -> Open SSH Server -> Install).

установка сервере openssh в windows

Чтобы проверить, установлен ли пакет:

Get-WindowsCapability -Online | ? Name -like 'OpenSSH*'

Исполняемые файлы OpenSSH находятся в каталоге:

C:\windows\system32\OpenSSH\

Конфигурационный файл sshd_config находится в каталоге C:\ProgramData\ssh (каталог создается после первого запуска службы).

Лог — c:\windows\system32\OpenSSH\logs\sshd.log

Файл authorized_keys и ключи хранятся в каталоге %USERPROFILE%\.ssh\.

В предыдущих версиях Windows 10, в Windows 8.1 или в Windows Server 2016/2012 R2 вам придется скачать Win32-OpenSSH для Windows с GitHub и установить вручную (https://github.com/PowerShell/Win32-OpenSSH/releases). Нам нужна версия для 64 битной версии Windows: OpenSSH-Win64.zip (4,15 Мб).

  1. Распакуйте содержимое архива в целевой каталог, к примеру:
    C:\OpenSSH-Win
  2. Запустите командную строку PowerShell с правами администратора и перейдите в каталог OpenSSH:
    cd C:\OpenSSH-Win
  3. Добавьте путь к каталогу OpenSSH в переменную окружения Path;добавить путь к openssh в переменную окружения path
  4. Установите сервер OpenSSH:
    .\install-sshd.ps1
    должно появиться зеленое сообщение “sshd and ssh-agent services successfully installed”).powershell скрипт установки openssh install-sshd.ps1

Настройка SFTP сервера на базе OpenSSH в Windows

Теперь вам нужно настроить OpenSSH для режима SFTP.

Включите автозапуск для службы SSHD и запустите ее с помощью следующих PowerShell команд управления службами:

Set-Service -Name sshd -StartupType ‘Automatic’

Start-Service sshd

С помошью PowerShell отройте в брандмауэре Windows порт TCP 22 для входящего трафика на SSH сервер:

New-NetFirewallRule -Protocol TCP -LocalPort 22 -Direction Inbound -Action Allow -DisplayName SSH
Правило файервола для SSHD порт 22Откройте в любом текстовом редакторе конфигурационный файл «C:\ProgramData\SSH\sshd_config», найдите и проверьте значение директивы Subsystem sftp. Здесь должен быть указан файл sftp-server.exe.

sshd_config файл конфигурации sftp_server

Рассмотрим полезные директивы в конфигурационном файле sshd_config:
# разрешить подключение к OpenSSH только для пользователей из этой группы

AllowGroups corp\admingroup
# включить аутентификацию по паролю (нельзя использовать ключи SSH)
AuthenticationMethods password
ForceCommand internal-sftp
#каталог для SFTP пользователей (по умолчанию пользователь подключается в каталог со своим профилем в папке C:\users\username)
ChrootDirectory C:\SFTPRoot

#Для каждого пользователя можно индивидуальную chrootdirectory:

Match User user1
ChrootDirectory c:\SFTPRoot\user1
ForceCommand internal-sftp
X11Forwarding no
 AllowTcpForwarding no
Match User user2
ChrootDirectory c:\SFTPRoot\user2
ForceCommand internal-sftp
X11Forwarding no
AllowTcpForwarding no

Подключение к SFTP серверу с помощью PowerShell и WinSCP

Теперь вы может подключиться к вашему SSH серверу на Windows по протоколу SFTP. Ниже мы покажем, как подключиться к SFTP серверу с помощью бесплатного клиента клиент WinSCP, консоли PowerShell и встроенной утилиты sftp.exe.

В окне настройки подключения выберите протокол передачи файлов SFTP, укажите имя сервера и данные учетной записи Windows (в формате
user@domain
для доменных пользователей), под которой осуществляется подключение (возможно также настроить авторизацию по ключам). При первом подключении появится окно с предупреждением о том, что ключ хоста отсутствует в локальном кеше.

winscp настройки sftp подключенияПри первом подключении появится окно с предупреждением о том, что ключ хоста отсутствует в локальном кеше.

key-warningЕсли все настроено правильно, клиент должен подключиться к SFTP серверу и отобразить список файлов в домашнем каталоге пользователя (по умолчанию каталог с профилем пользователя).

С помощью привычного интерфейса файлового менеджера можно безопасно копировать файлы между сервером и клиентом по защищённому протоколу SFTP.

sftp подключение в winscp

Для подключения к SFTP серверу из PowerShell можно использовать модуль Posh-SSH. Вы можете скачать установить модуль из PowerShell Gallery или офлайн:

Install-Module -Name Posh-SSH

установка модуля powershell ssh

Для подключения к SFTP серверу с помощью пароля, нужно получить имя пользователя и пароль через Get-Credential:

$usrCreds= Get-Credential

Теперь можно подключиться к вашем SFTPS серверу:

$SFTPSession = New-SFTPSession -ComputerName 192.168.13.200 -Credential $usrCreds

Теперь вы можете вывести список файлов в удаленном каталоге на SFTP сервере. В этом примере я получу список файлов на рабочем столе пользователя (профиль пользователя в этом случае будет являться корнем)

Get-SFTPChildItem -SFTPSession $SFTPSession -Path "desktop" –Recurse

powershell вывести список файлов на sftp сервере

Чтобы скачать файл с удаленного SFTP сервера:
Get-SFTPItem -SessionId $SFTPSession.SessionId -Path "desktop/OpenVPNScript.log" -Destination c:\temp

Чтобы закачать файл с вашего компьютера на удаленный SFTP хост:

Set-SFTPItem -SessionId $SFTPSession.SessionId -Path C:\Temp\mytestfile.log -Destination “desktop”

скачать файл с sftp с помощью powershell

Завершить SFTP сессию:

Remove-SFTPSession -SFTPSession $SFTPSession

В Windows вы можете использоваться встроенную утилиту sftp.exe (устанавливается вместе с клиентом OpenSSH) для подключения к SFTP серверу.

Подключиться к sftp серверу:

sftp [email protected]

Подключиться с помощью ssh ключа:

sftp -i .ssh/id_rsa [email protected]

Вывести список файлов в удаленном каталоге:

pwd

Скачать файл с SFTP в локальный каталог на ваш компьютер:

get file-test1.txt

Загрузить файл с вашего компьютера на SFTP сервер:

put file-test2.txt

Закрыть сессию:

exit

утилита sftp.exe в Windows

Настройка SFTP аутентификации по ключам

Вы можете настроить SFTP аутентификацию по ключам. В этом случае при подключении к SFTP серверу вам не нужно будет указывать пароль пользователя.

Подробно настройка SSH аутентификации по ключам описана в этой статье.

Для этого нужно:

  1. Создать на вашем компьютере (SFTP клиент) ключи для пользователя, под которым вы будете подключаться к серверу:
    ssh-keygen -t ed25519
    генерация пары ssh ключей для sftp в windows
  2. Утилита сгенерирует два файла
    id_ed25519
    (закрытый ключ для клиента) и
    id_ed25519.pub
    (открытый ключ для сервера);
  3. Теперь нужно добавить ваш SSH ключ на сервер. Скопируйте файл id_ed25519.pub(или id_rsa.pub в зависимости от типа ключа) в каталог .ssh профиля пользователя, под которым вы будете подключаться к SFTP серверу. Переименуйте файл в authorized_keys (например для пользователя alex путь будет выглядеть так:
    C:\Users\alex\.ssh\authorized_keys
    )

Теперь вы можете использоваться файл id_ed25519 для аутентификации на SFTP сервере в настройках WinSCP (настройки подключения Advanced -> to SSH > Authentication page -> Private key file).

Если вы хотите задать SSH ключ при подключении к SFTP из PowerShell, используйте такую команду:

New-SFTPSession -ComputerName 192.168.13.200 -Credential user1 -KeyFile C:\Users\alex\.ssh\id_ed25519" -Verbose

SSH — защищенный сетевой протокол. Он позволяет установить соединение по зашифрованному туннелю и управлять удаленным сервером с помощью команд.

Для соединения с сервером используйте:

  • логин аккаунта;
  • пароль для входа в Панель управления;
  • IP-адрес сервера, где размещен аккаунт (указан в Панели управления, раздел «Сайты» → «IP-адреса» ), или доменное имя сайта.

Способ подключения зависит от установленной на устройстве операционной системы.

PuTTY для Windows

Для соединения по SSH из ОС Windows установите SSH-клиент PuTTY. Он распространяется бесплатно. Скачайте программу с официального сайта и запустите ее.

В списке категорий выберите пункт «Session», в графе «Host name (or IP adress)» введите IP-адрес сервера, где расположен аккаунт, или доменное имя сайта. В блоке «Connection type» отметьте «SSH». Нажмите «Open».

Нажмите «Да» в окне с предупреждением: сервер будет добавлен в список доверенных хостов.

В окне консоли введите логин вашего аккаунта, нажмите «Enter» и укажите пароль для входа в Панель управления. В целях безопасности пароль при вводе не отображается.

Если пароль введен верно, вы увидите следующее:

Терминал в Linux и Mac OS

Подключиться по SSH из операционных систем Mac OS или Linux можно с помощью встроенного приложения «Терминал».

Запустите программу и выполните команду:
ssh username@X.X.X.X
где X.X.X.X — IP-адрес сервера или доменное имя сайта.

Введите пароль от Панели управления и нажмите «Enter».

Secure Shell в браузере Google Chrome

Secure Shell — дополнение для Google Chrome, выпущенное компанией Google. С его помощью можно подключиться к серверу по SSH из браузера.

Установите дополнение, скачав его из официального интернет-магазина, перезагрузите браузер.

Откройте новую вкладку, нажмите на значок расширений и кликните на значок расширения «Secure Shell» — приложение откроется в новом окне.

В поле «username@hostname или текст» укажите логин вашего аккаунта и через символ «@» хост — IP-адрес сервера или домен сайта. Нажмите кнопку «[ВВОД] Подключить».

На следующем шаге программа может предложить добавить сервер в список доверенных — введите yes и нажмите «Enter».

Затем расширение запросит пароль — укажите тот, который вы используете для входа в Панель управления, и нажмите «Enter». В целях безопасности символы пароля не отображаются.

Готово, соединение установлено!

Использование SSH-ключей

Для подключения к аккаунту по SSH-ключам предварительно генерируем персональную пару ключей — открытый и закрытый. Первый ключ копируем на удаленный сервер, а второй — никому не передаем (только через защищенные каналы).

Вот так ключи можно создать в ОС GNU, Linux и macOS.

Переходим в директорию .ssh и генерируем ключи командой:

ssh-keygen -t rsa -b 4096

где -t — тип ключа, а -b — длина ключа.

Далее задаем имя ключа или оставляем вариант по умолчанию (~/.ssh/id_rsa). Вводим дополнительный пароль – пассфразу – и подтверждаем ее.

Далее копируем SSH-ключи на аккаунт с помощью команды:

ssh-copy-id login@server

где login – логин аккаунта, server – IP-адрес сервера.

Готово! Попробуйте подключиться по SSH к аккаунту хостинга и при авторизации укажите пассфразу.

SFTP

С помощью SSH можно не только безопасно управлять сервером, но и передавать файлы. Для этой цели был создан отдельный протокол SFTP (SSH File Transfer Protocol).

Принцип его работы похож на FTP, при этом данные передаются по зашифрованному туннелю.

WinSCP для Windows

WinSCP — бесплатный клиент для подключения к серверу по SFTP из ОС Windows. Скачайте WinSCP с официального сайта, установите его на компьютер и запустите.

В выпадающем списке «Протокол передачи» выберите «SFTP». В графе «Имя хоста» введите IP-адрес сервера, где размещен ваш аккаунт, или доменное имя сайта. «Имя пользователя» и «Пароль» укажите те же, что при входе в Панель управления.

Нажмите «Да», чтобы добавить сервер в список доверенных.

Готово, соединение установлено!

Терминал в Linux и Mac OS

Для подключения по SFTP используйте приложение «Терминал».

Запустите программу и введите команду:
sftp username@X.X.X.X
где X.X.X.X — IP-адрес сервера или домен сайта.

Чтобы увидеть список доступных для SFTP команд, введите help или ? и нажмите «Enter».

Была ли эта инструкция полезной?

WinSCP — это графический SFTP-клиент для Windows с открытым исходным кодом. Он также поддерживает протокол SCP.

Включение SSH

SFTP (SSH File Transfer Protocol) — протокол прикладного уровня для передачи данных (подобно протоколу FTP) в зашифрованном виде. В качестве базового протокола используется безопасный протокол SSH.

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

Чтобы включить доступ по SSH, достаточно в Панели Управления аккаунтом нажать на кнопку включения доступа. Она располагается на главной странице в табличке «Тех. информация».

Далее расскажем, что же необходимо для работы с WinSCP.

Установка и настройка WinSCP

Скачать WinSCP можно здесь.

Итак, скачиваем и устанавливаем WinSCP.

При первом запуске Вы увидите окно следующего вида:

Вводите имя сервера («Host Name»). Имя сервера указано в Панели Управления на главной странице в табличке «Общая информация» или в разделе FTP. Имя пользователя и пароль («User Name», «Password») — это Ваши логин и пароль для входа в Панель Управления.

Вы можете сразу подключиться, нажав «Login», или для удобства сохранить сессию, нажав «Save». При сохранении сессии будет предложено ввести имя сессии и выбор, сохранять или нет пароль.

На вкладке «Stored Sessions» Вы можете видеть сохранённые сессии. Вы можете выбрать сохранённую сессию в списке и нажать «Login» для подключения.

На вкладке «Preferences» Вы можете настроить вид программы после подключения. Вы можете выбрать интерфейс в стиле Norton Commander или в стиле проводника Windows Explorer. По умолчанию выбран первый вариант.

После подключения, если выбран интерфейс в стиле Norton Commander, Вы увидите примерно следующее:

Этот интерфейс более удобен для управления с клавиатуры, им можно пользоваться вообще без помощи мыши. Он также позволяет выполнять основные операции быстрее и более наглядно.

После подключения, если выбран интерфейс в стиле проводника Windows Explorer, Вы увидите примерно следующее:

Этот интерфейс хорошо известен всем пользователям ОС Windows.

Завершить сессию Вы можете из вкладки «Session», выбрав «Disconnect», или воспользовавшись комбинацией горячих клавиш.

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

Удачной работы! Если возникнут вопросы — напишите нам, пожалуйста, тикет из Панели управления аккаунта, раздел «Помощь и поддержка».

Содержание

Что такое протоколы SSH и SFTP?

SSH (англ. Secure Shell — «безопасная оболочка») — сетевой протокол прикладного уровня, позволяющий производить удалённое управление операционной системой и туннелирование TCP-соединений (например, для передачи файлов). Схож по функциональности с протоколами Telnet и rlogin, но, в отличие от них, шифрует весь трафик, включая и передаваемые пароли. SSH допускает выбор различных алгоритмов шифрования. SSH-клиенты и SSH-серверы доступны для большинства сетевых операционных систем.

SFTP (англ. SSH File Transfer Protocol) — протокол прикладного уровня, предназначенный для копирования и выполнения других операций с файлами поверх надёжного и безопасного соединения. Протокол разработан группой IETF как расширение к SSH-2, однако SFTP допускает реализацию и с использованием иных протоколов сеансового уровня.

Для того, что бы подключится по SSH/SFTP необходимо использовать данные для доступа, которые были отправлены на электронную почту, указанную вами при регистрации услуги VPS/VDS. Нам необходимо знать IP адрес сервера, пароль для пользователя root.

Подключение к серверу по SSH из Mac OS X

Для подключения к серверу по SSH в операционных системах семейства MacOS X имеется стандартное приложение — Terminal.app.

В Доке выберите Finder.

Зайдите в раздел Applications, выберите каталог Utilities.

Далее, выберите утилиту Terminal.app и кликните ней.

В открывшемся окне терминала введите команду

ssh root@111.222.333.444

Измените 111.222.333.444 на IP адрес Вашего сервера.

Если это первый заход на сервер, то клиент предложит запомнить хост, к которому выполняется подключение. Подтвердить это действие можно набрав в консоли слово yes и нажав клавишу Enter. В противном случае наберите no и нажмите Enter.

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

Так выглядит процесс подключения к виртуальному серверу в терминале Mac OS X:

ssh root@188.127.236.62
The authenticity of host '188.127.236.62 (188.127.236.62)' can't be established.
RSA key fingerprint is 4f:e8:84:42:51:80:48:70:45:6c:69:47:79:e7:c0:56.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '188.127.236.62' (RSA) to the list of known hosts.
root@188.127.236.62's password: 
[root@20-255 ~]#

Подключение к серверу по SSH из Linux

Пользователи операционных систем Unix могут использовать стандартное приложение Terminal для подключения к виртуальному серверу по SSH протоколу.

В открывшемся окне терминала введите команду

ssh 111.222.333.444

где вместо 111.222.333.444 укажите IP адрес сервера, который был прислан на контактный адрес электронной почты после активации услуги VPS/VDS.

Если это первый вход на сервер, то клиент предложит запомнить хост, к которому выполняется подключение. Подтвердить это действие можно набрав в консоли слово yes и нажав клавишу Enter. В противном случае наберите no и нажмите Enter.

Введите пароль. Если все данные были указаны верно, клиент успешно подключится к площадке.

Если, ввести команду:

ls /

Вы увидите список содержимого корневого каталога вашего сервера.

Подключение к серверу по SSH из Windows

Для подключения к серверу по протоколу SSH в операционных системах семейства Windows не предусмотрены штатные средства, поэтому перед работой по SSH необходимо выбрать и установить SSH клиент (FireSSH для Firefox, Secure Shell для Google Chrome, PuTTY, OpenSSH и другие).

Для пользователей Windows мы рекомендуем SSH-клиент Putty, который представляет собой исполняемый EXE-файл и не требует установки. Загрузить Putty можно с официального сайта разработчика программы: http://www.putty.nl/download.html.

После открытия программы:

  1. Выберите Тип соединенияSSH

  2. В поле Сохраненная сессия — введите IP адрес сервера

  3. Нажмите кнопку Save

  4. Нажмите кнопку Open

В открывшейся консоле — введите полученный ранее Логин и Пароль.

Если это первый вход на сервер, то клиент предложит запомнить хост, к которому выполняется подключение. Подтвердить это действие можно набрав в консоли слово yes и нажав клавишу Enter. В противном случае наберите no и нажмите Enter.

Если авторизационные данные были введены верно, клиент успешно подключится к площадке.

Если, ввести команду:

ls /

Вы увидите список содержимого корневого каталога вашего сервера.

Подключение к серверу по SFTP

Этот протокол используется для загрузки файлов на сервер.

Для загрузки данных на сервер вам понадобятся данные для доступа к серверу и любой FTP-клиент, например, WinSCP или Filezilla.

Для примера, рассмотрим подключение с помощью программы Filezilla. В верхнем меню выберите Менеджер сайтов.

  1. Нажмите кнопку Новый

  2. Введите имя подключения

  3. В поле Хост — введите IP адрес сервера

  4. Тип сервера — выберите SFTP using SSH2

  5. Тип идентификации — выберите Обычная

  6. В поле Имя пользователя — введите root

  7. В поле Пароль — введите пароль, полученный ранее.

  8. Нажмите кнопку Соединить.

На правой стороне клиента — вы увидите, что находитесь в каталоге root.

Для, того что бы загрузить файлы на сайт, необходимо перейти в каталог /home/clients/info/domains/

This guide contains simplified description of connecting to FTP or SFTP server with WinSCP.

  • Before Starting
  • Collecting Session Details
  • Connecting
  • Further Reading

Advertisement

Before Starting

Before starting you should have WinSCP installed.

Collecting Session Details

Before you connect, you need to know at least:

  • Host name1 of the server,2 such as ftp.example.com. Particularly when connecting to server hosting your website, note that the host name of the server, where you connect to manage the web site may not be the same as your website domain.
  • Protocol the server supports (FTP, SFTP, FTPS, etc.).
  • Account username.
  • Account password.3

If you do not know these details, ask the administrator of the system you are trying to connect to, such as:

  • IT Support department of the company you work in;
  • IT Support department of the university you study at;
  • Webhosting company that provides you a website.

Connecting

Start WinSCP. Login Dialog will appear. On the dialog:

  • Select your File protocol.
    When you are about to use FTPS protocol (FTP over TLS/SSL, not SFTP), select FTP and then choose one of the FTPS invocation methods).
  • Enter your host name to Host name field, username to User name and password to Password
  • You may want to save your session details to a site so you do not need to type them in every time you want to connect. Press Save button and type site name.
  • Press Login to connect.

Advertisement

Further Reading

  • Troubleshooting;
  • Other guides to using WinSCP;
  • Tasks you can do with WinSCP.

  • Как подключиться к ubuntu из windows по rdp
  • Как подключиться к openvpn серверу на windows 10
  • Как подключиться к mac os из windows по rdp
  • Как подключиться к mariadb windows
  • Как подключиться к ftp через проводник windows 10