- Установка и настройка SFTP сервера (SSH FTP) в Windows на базе OpenSSH
- Особенности протокола SFTP
- Реализация SFTP в системах Windows
- Установка Win32 OpenSSH в Windows 10 1803+/Windows Server 2019
- Установка Win32 OpenSSH на Windows Server 2016/2012 R2
- Тестируем SFTP подключение с помощью WinSCP
- Удаление службы Win32 OpenSSH
- Настройка SFTP для управления файлами на сервере
- Настройка в панели ISPmanager
- Настройка через консоль
- Протокол передачи данных SFTP
- Что такое FTP
- Протокол SFTP и FTPS
- Зачем использовать SFTP
- Настройка SFTP
- Как создать пользователя SFTP в панели ISPmanager
- Как настроить SFTP-доступ через консоль
- Как подключиться по SFTP
Установка и настройка SFTP сервера (SSH FTP) в Windows на базе OpenSSH
С помощью официального пакета OpenSSH для Windows вы можете с легкостью организовать безопасный обмен файлами между клиентом и серверов Windows по защищенному протоколу передачи файлов SFTP (Secure FTP). В этой статье мы покажем, как с помощью Win32-OpenSSH установить SFTP сервер на Windows 10 или Windows Server 2016/2012R2.
Особенности протокола SFTP
Протокол SFTP (Secure File Transfer Protocol , Secure FTP или SSH FTP) это расширение протокола SSH, являющимся стандартом мира UNIX/Linux систем. Хотя с точки зрения пользователей он похож на FTP, но на самом деле это абсолютно другой протокол, не имеющий с FTP ничего общего. Данные между клиентом и сервером передаются по порту 22 через SSH туннель.
Основные преимущества протокола SFTP:
- Передача файлов и команд происходит внутри защищенной SSH-сессии;
- Для передачи файлов и команд используется одно соединение;
- Поддержка символических ссылок, функций прерывания, возобновления передачи, удаления файла и пр;
- Как правило, на каналах, где FTP работает медленно или с перебоем, SFTP-соединение работает более надежно и быстро;
- Возможность аутентификации с помощью SSH ключей.
Реализация SFTP в системах Windows
Исторически в операционных системах Windows отсутствуют встроенные средства для организации защищенного SFTP сервера. Для этих целей обычно использовались открытые или коммерческие решения, к примеру, Core FTP, FileZilla, CYGWIN, OpenSSH, FTP Shell, IPSwitch и пр. Однако несколько лет назад Microsoft выпустила свою версию порта OpenSSH для win32. Данный проект называется Win32-OpenSSH.
Рассмотрим процесс настройки SFTP сервера в Windows 10 и Windows Server 2016/2012 R2 с помощью пакета Win32-OpenSSH.
Установка Win32 OpenSSH в Windows 10 1803+/Windows Server 2019
В Windows 10, начиная с билда 1803, и в Windows Server 2019 пакет OpenSSH (как и RSAT) уже включен в операционную систему в виде Feature on Demand (FoD).
В Windows 10 и Windows Server 2019 вы можете установить сервер OpenSSH с помощью командлета PowerShell:
Add-WindowsCapability -Online -Name OpenSSH.Server*
Или с помощью DISM:
dism /Online /Add-Capability /CapabilityName:OpenSSH.Server
Или можно установить OpenSSH из графического интерфейса Windows 10 (Settings -> Apps -> Optional Features -> Add a feature -> Open SSH Server -> Install).
Исполняемые файлы OpenSSH находятся в каталоге:
Конфигурационный файл sshd_config находится в каталоге C:\ProgramData\ssh (каталог создается после первого запуска службы).
Файл authorized_keys и ключи хранятся в каталоге %USERPROFILE%\.ssh\.
Установка Win32 OpenSSH на Windows Server 2016/2012 R2
В предыдущих версиях Windows 10 и в Windows Server 2016/2012 R2 вы должны скачать и установить OpenSSH с GitHub (https://github.com/PowerShell/Win32-OpenSSH/releases). Нам нужна версия для 64 битной версии Windows: OpenSSH-Win64.zip (3,5 Мб).
- Распаковываем содержимое архива в целевой каталог, к примеру: C:\OpenSSH-Win
- Запускаем командную строку PowerShell с правами администратора и переходим в каталог OpenSSH: Cd C:\OpenSSH-Win
- Добавьте путь к каталогу OpenSSH в переменную окружения Path;
- Установите сервер OpenSSH: .\install-sshd.ps1 (должно появиться зеленое сообщение “sshd and ssh-agent services successfully installed”);
- Сгенерируйте SSH ключи для сервера (нужны для запуска службы sshd): ssh-keygen.exe –A
, убедитесь, что создан каталог %programdata%\ssh.
Тестируем SFTP подключение с помощью WinSCP
Попробуем подключиться к поднятому нами SSH серверу по протоколу SFTP. Для этих целей воспользуемся свободным клиентом WinSCP.
В окне настройки подключения выберите протокол передачи файлов SFTP, укажите имя сервера и данные учетной записи Windows, под которой осуществляется подключение (возможно также настроить авторизацию по ключам).При первом подключении появится окно с предупреждением о том, что ключ хоста отсутствует в локальном кеше.
Если все настроено правильно, клиент должен подключиться к SFTP серверу и отобразить список файлов в домашнем каталоге пользователя (по умолчанию каталог с профилем пользователя).
С помощью привычного интерфейса файлового менеджера можно безопасно копировать файлы между сервером и клиентом. Передача файлов будет осуществляться по защищённому протоколу SFTP.
Удаление службы Win32 OpenSSH
Чтобы корректно удалить службу Win32 OpenSSH из системы:
- Откроем консоль Powershell с правами администратора
- Остановим службу SSHD: Stop-Service sshd
- Удалим службу OpenSSD:Удалим ключи: .\uninstall-sshlsa.ps1
Источник
Настройка SFTP для управления файлами на сервере
Для передачи файлов на сервер чаще всего используют протоколы передачи данных FTP (File Transfer Protocol) и SFTP (SSH File Transfer Protocol). SFTP безопасней в отличие от FTP: FTP не умеет шифровать свой трафик, передачи идут открытым текстом — все данные (имена пользователей, пароли, команды и т.д.) могут быть перехвачены и прочитаны. SFTP же предоставляется с большинством реализаций Secure Shell или SSH — протокола, который для аутентификации пользователя использует криптографию и шифрует любые соединения между двумя компьютерами. Про настройку SSH мы подробно написали в статье «Как подключиться к серверу по SSH?».
SFTP был разработан намного позднее FTP, в 2006 году. Он, также как и FTP, используется для копирования и других операций с файлами, но все это делается с использованием защищенного соединения на двух сторонах — клиентской и серверной.
По умолчанию SFTP использует протокол SSH, поэтому в SFTP доступны те же методы авторизации, что и в SSH.
Настройка в панели ISPmanager
Если для управления сервером вы используете ISPmanager, то создать пользователя с SFTP-доступом на сервер проблем не составит:
- перейдите в раздел «Учетные записи» — «Пользователи»,
- создайте нового или измените уже существующего пользователя,
- в настройках пользователя нужно дать доступ к shell:
В этом случае у пользователя будет доступ на сервер по обоим защищенным протоколам: SSH и SFTP. Нужно учитывать, что ISPmanager настраивает пользователей, ограничивая их доступ пользовательским каталогом, это значит, что у пользователя sftp_user будет доступ только в каталог /var/www/sftp_user/data и его подкаталоги.
Настройка через консоль
Если вы не используете панель ISPmanager, то работу SFTP можно настроить вручную. На наших серверах OpenSSH устанавливается по умолчанию (справедливо для серверов с операционными системами linux установленных из наших шаблонов). Для того, чтобы включить sftp-server в sshd , необходимо указать его в конфигурационном файле /etc/ssh/sshd_config в качестве подсистемы:
Как правило, это строка уже указана в конфигурационном файле sshd по умолчанию, так что SFTP работает сразу и не требует никаких дополнительных действий для включения. SSH и SFTP (по умолчанию) работают на 22 порте, поэтому подключаться по sftp , также как и по ssh нужно через 22 порт (порт можно изменить в конфигурационном файле /etc/ssh/sshd_config ).
Для подключения можно использовать разные приложения, например, FileZilla. Для подключения нужно указать хост, имя пользователя, пароль и порт на котором работает SFTP.
Изначально доступ будет только для пользователя root. Чтобы настроить работу других пользователей на SFTP нужно:
- cоздать пользователя, под которым будем подключаться по sftp:
- установить пароль для пользователя:
- создать каталог и настроить права на каталог для этого пользователя:
- в конце конфигурационного файла /etc/ssh/sshd_config добавить настройку для пользователя:
ChrootDirectory нужно указывать на каталог выше того, который будет использовать пользователь, так как владельцем этой папки должен быть root и у других пользователей не должно быть прав на запись. - перезапускаем SSH сервер:
SFTP-пользователь создан. Используя его, вы сможете управлять файлами на сервере, не беспокоясь о безопасности данных. Если у вас возникнут сложности с настройкой, обращайтесь в нашу службу поддержки. Мы поможем.
Источник
Протокол передачи данных SFTP
В статье рассмотрим, что такое SFTP-порт и как настроить SFTP-сервер в панели управления ISPmanager и через консоль.
Что такое FTP
Сетевой протокол — это набор правил, которые описывают, как именно информация должна передаваться между устройствами в интернете. К распространённым протоколам относятся: TCP/IP, HTTP, FTP, POP3 и SMTP и др. У каждого из них своя область использования:
по протоколу HTTP передаются данные со страниц в интернете (гиперссылки),
протоколы POP3 и SMTP задают правила для получения/отправки почты.
Протокол FTP (File Transfer Protocol) используется для передачи данных с одного компьютера/сервера на другой в интернете.
На практике с передачей по FTP сталкиваются владельцы сайтов, когда им нужно загрузить информация со своего компьютера в папку сайта на хостинге. Они, конечно, могут передавать данные и через панель управления. Это проще, но у метода есть ограничения по объёму/скорости передачи.
Поэтому часто владельцы сайтов используют FTP. Для этого они подключаются к FTP-серверу. Это сервер, который специально настроен для обмена данными. Чтобы подключиться к FTP-серверу, нужно создать FTP-аккаунт и использовать FTP-клиент (программу Filezilla, Total Commander и др.). Мы рассматривали подключение по FTP в отдельной статье.
Протокол SFTP и FTPS
При передаче по FTP данные никак не шифруются. Так получилось, потому что при разработке (1971 г.) этот протокол использовали только в университетах и военных организациях США. Система была закрытой, и нужды защищать информацию не было.
По мере роста интернета и увеличения количества пользователей появилась необходимость шифровать передачу данных. Сначала для этого использовали расширение на FTP. Расширение FTPS добавляет к стандартному протоколу криптографическое шифрование SSL/TLS. Сейчас оно считается устаревшим.
SFTP (SSH SFTP) — ещё один протокол передачи данных, который выполняет операции с файлами поверх надёжного SSH-протокола. Это значит, что он шифрует всю информацию: команды, пользователей и пароли. Несмотря на похожие названия, FTP и SFTP — разные технологии. Они работают через разные порты.
Зачем использовать SFTP
FTP можно использовать только в доверенных сетях. Протокол SFTP гарантирует безопасность передачи данных во всех случаях. Подключаясь по SFTP, вы используете надежный канал, защищенный протоколом SSH. Он аутентифицирует клиент и сервер, исключая возможность того, что сессию взломает злоумышленник.
Также у SFTP есть дополнительные преимущества по сравнению с FTP и FTPS. Он может:
прерывать передачу файлов,
удалять или возобновлять передачу,
использоваться на большем количестве платформ.
Настройка SFTP
На виртуальном хостинге REG.RU SFTP настроен автоматически.
Если вы используете VPS или Облачные серверы, нужно создать SFTP-пользователя. Вы можете сделать это:
в панели управления ISPmanager (если на сервер установлено это приложение),
Как создать пользователя SFTP в панели ISPmanager
Перейдите в раздел «Учётные записи» — «Пользователи» и нажмите Создать:
Также вы можете настроить доступ по SFTP у существующего пользователя. Для этого выберите нужную запись в списке и нажмите Изменить. На открывшейся странице поставьте галочку напротив пункта Доступ к shell и сохраните изменения.
Заполните обязательные поля в блоке «Основное»:
Пролистайте страницу вниз до блока «Доступ», поставьте галочку напротив пункта Доступ к shell и нажмите Далее:
Настройка «Доступ к shell» обеспечивает безопасность по SFTP- и SSH-протоколам
На следующей странице введите домен сайта, для которого планируете использовать SFTP, и нажмите Далее:
Завершите создание аккаунта для подключения по SFTP:
Готово! Теперь вы сможете передавать данные по SFTP.
Как настроить SFTP-доступ через консоль
Если вы пользуетесь облачным хостингом REG.RU, отдельно создавать SFTP-аккаунт не нужно.
Используйте для подключения IP-адрес сервера и пароль root-пользователя. Эта информация отправляется на почту после создания сервера и дублируется в Личном кабинете.
Если подключиться по SFTP не получается, откройте консоль вашей ОС и введите команду:
Как подключиться по SFTP
Подключиться по SFTP можно с помощью нескольких программ: FileZilla, CWinSCP и другие. Выберите подходящую в зависимости от вашей ОС, установите её и выполните следующие действия (на примере FileZilla):
Хост — IP-адрес сервера;
Имя пользователя — root или имя созданного ранее SFTP-аккаунта;
Пароль — пароль SSH или пароль SFTP-аккаунта;
Порт — SFTP-порт по умолчанию (22).
Нажмите Быстрое соединение:
Готово! После подключения вы сможете безопасно обмениваться данными с удалённым сервером.
Источник