Как зайти на sftp через windows

Организация сервера для защищенной передачи файлов по протоколу SSH на Windows Server 2012 R2

С помощью встроенного пакета 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:windowssystem32OpenSSH

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

Лог — c:windowssystem32OpenSSHlogssshd.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:ProgramDataSSHsshd_config», найдите и проверьте значение директивы Subsystem sftp. Здесь должен быть указан файл sftp-server.exe.

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

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

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

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

Match User user1
ChrootDirectory c:SFTPRootuser1
ForceCommand internal-sftp
X11Forwarding no
 AllowTcpForwarding no
Match User user2
ChrootDirectory c:SFTPRootuser2
ForceCommand internal-sftp
X11Forwarding no
AllowTcpForwarding no

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

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

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

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:Tempmytestfile.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:Usersalex.sshauthorized_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:Usersalex.sshid_ed25519" -Verbose

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

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

Где взять данные для подключения к серверу по ssh / sftp?

Эти и другие данные вам присылаются в письме после создания и установки сервера. Найдите в письме такую часть (данные будут другие, это пример)

>> Данные для доступа к серверу (SSH)

IP Адрес : 91.215.152.7
Логин : root
Пароль : 1QyeB49TrR
Порт : 3333

именно эти данные необходимо использовать для подключения по ssh и sftp.

Подключение по ssh / sftp из Windows

Пользователям Windows мы рекомендуем использовать программу putty. Это один из наиболее популярных ssh клиентов, который распространяется бесплатно.

Для подключения по ssh с помощью putty выполните следующие шаги:

Шаг 1. Скачайте и запустите putty (putty.exe)

Putty1.png

Шаг 2. Введите ip сервера и выберите протокол ssh. Не забудьте указать правильный порт (обычно это или 3333, или 22).

Putty2.png

Шаг 3. При первом входе принимаем сертификат

Putty3.png

Шаг 4. Вводим логин и пароль

Putty4.png

Putty5.png

Примечание: При вводе пароля вы не видите введённых символов. Из-за этого многим кажется, что ничего не происходит. Однако это не так.

Полезные советы по работе с putty:

1. Для копирования текста из консоли PuTTY нужно просто выделить текст — он автоматически скопируется в буфер обмена. Для вставки текста в консоль используется сочетание клавиш Shift+Insert, либо можно просто нажать в консоли правой кнопкой мыши.
2. Прервать исполнение текущей команды — Ctrl+C
3. Очистить экран — Ctrl+L
4. Завершить сессию Ctrl+D или exit в командной строке.

Подключение по ssh / sftp из Linux или Mac OS

Если вы используете Mac OS или Linux, то для подключения к серверу по протоколу ssh можете использовать стандартное приложение «Терминал» (terminal). Для подключения используйте команду (ip будет другой)

ssh [email protected] -p 3333

Процесс подключения выглядит так

ssh [email protected] -p 3333
The authenticity of host '91.215.152.7 (91.215.152.7)' can't be established.
RSA key fingerprint is bb:8c:b7:44:14:c6:c1:17:36:c7:ce:ba:08:40:00:c0.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '91.215.152.7' (RSA) to the list of known hosts.
[email protected]'s password:
[[email protected] ~]#

Примечание: При вводе пароля вы не видите введённых символов. Из-за этого многим кажется, что ничего не происходит. Однако это не так.

Подключение по sftp с помощью FileZilla

Для подключения по sftp рекомендуем использовать FileZilla. Процесс подключения по sftp мало чем отличается от процесса подключения по ftp, кроме одного момента — необходимо принудительно указать порт по которому идёт подключение, по умолчанию это 3333-й порт, но может быть и 22-й, а также протокол sftp:// перед IP-адресом в строке подключения. Также убедитесь, что пользователю, под которым выполняется вход, разрешён доступ по SSH.

Sftp1.png

после подключения нужно будет принять сертификат

Sftp2.png

В статье я покажу, как настроить настроить SFTP-сервер в Windows с помощью OpenSSH.

Беспроводная передача данных в локальной сети — это не ноу-хау. Уже многие таким образом обмениваются файлами во внутренней сети. Часто для этого используется подключение по протоколу FTP.

Настраивается FTP-сервер и с помощью FTP-клиента другие компьютеры сети могут к нему подключиться. Но поскольку протокол FTP небезопасен, вам следует подумать об отказе от него в пользу чего-то лучшего. Для тех, кто не вкурсе, существует более безопасный протокол передачи файлов, который называется SFTP. Он шифрует передаваемые данные. Использование безопасного протокола SFTP может гарантировать, что никто не сможет подключиться и перехватить данные.

Содержание

  1. SFTP-сервер в Windows
  2. Настройка SFTP-сервера в Windows с помощью OpenSSH
  3. Установка OpenSSH (и активация необходимых сервисов)
  4. Открытие порта SSH в брандмауэре Windows
  5. Тестирование SFTP-сервера
  6. Тестирование SFTP-сервера в Windows
  7. Тестирование SFTP-сервера в Android
  8. Заключение

Все хорошо, но есть одна проблема чтобы настроить SFTP-сервер нужен SSH, а его во всех версиях Windows — нет. Если вам нужен SFTP-сервер придется использовать OpenSSH.

OpenSSH — это реализация SSH с открытым исходным кодом, и рекомендует использовать сам Microsoft. OpenSSH по умолчанию включен в Windows 10 и Windows Server 2019. Но вы можете использовать рассмотренный в статье метод с любой версией Windows.

Настройка SFTP-сервера в Windows с помощью OpenSSH

Настройка SFTP-сервер в Windows состоит из двух частей:

  • Установка OpenSSH
  • Открытие порта SSH для работы SFTP

Установка OpenSSH (и активация необходимых сервисов)

  1. Загрузите OpenSSH с GitHub.
  2. Распакуйте архив в папку Program Files.
  3. Откройте PowerShell от имени администратора и вставьте следующую команду в окно, чтобы перейти к папке:

    <strong>cd «C:Program FilesOpenSSHWin64</strong>».

  4. Для работы SSH требуются две службы: sshd и ssh-agent. Чтобы установить их, введите следующую команду в окно PowerShell:

    <strong>powershell.exe ExecutionPolicy Bypass File installsshd.ps1</strong>.
    Вы должны увидеть сообщение «Службы sshd и ssh-agent успешно установлены».

  5. Закройте окно PowerShell.
  6. Вы можете запустить службы вручную или настроить их автоматическое открытие с помощью Services.msc. Это создаст папку
    <strong>C:ProgramDatassh</strong> с вашим ключом хоста, который имеет важное значение для работы службы.

Примечание. Службы называются агентом проверки подлинности OpenSSH и сервером SSH OpenSSH.

Открытие порта SSH в брандмауэре Windows

  1. SSH использует порт 22 для передачи / аутентификации, который закрыт в Windows, потому что SSH не включен по умолчанию. Чтобы открыть его, откройте брандмауэр Windows из панели управления.
  2. Нажмите на Входящие правила (на левой панели).
  3. На правой панели нажмите новое правило, выберите Порт и нажмите Далее.
  4. Введите число 22 в поле «Определенные локальные порты» и нажмите «Далее».
  5. Выберите «Разрешить подключение», нажмите «Далее» и выберите «Частный» для опции сети.
  6. Дайте правилу имя. Например, SSH или OpenSSH.
  7. Нажмите на Готово.

Как настроить порт SFTP брандмауэр Windows

Тестирование SFTP-сервера

Давайте проверим, работает ли SFTP-сервер. Для этого вам нужен SFTP-клиент. Я буду испоьзовать бесплатный SFTP-клиент WinSCP, но вы можете использовать любой другой, поддерживающий SFTP, например, FileZilla, FTP Rush или файловый менеджер с поддержкой SFTP, такой как Altap Salamander.

Для Android есть много вариантов; Total Commander и Ghost Commander имеют плагины SFTP, в то время как некоторые приложения, такие как Amaze File Manager или X-plore File Manager, имеют встроенную функцию SFTP.

Тестирование SFTP-сервера в Windows

Запустите WinSCP и выберите «SFTP» в качестве протокола. В поле имени хоста введите «localhost» (если вы тестируете компьютер, на котором вы установили OpenSSH). Вам нужно будет ввести имя пользователя и пароль Windows, чтобы программа могла подключаться к серверу. Нажмите сохранить и выберите логин.

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

SFTP сервер в Windows WINSCP

SFTP сервер в Windows WINSCP

Примечание. Если ваша учетная запись пользователя Windows не имеет пароля, вам потребуется использовать открытый ключ для аутентификации SFTP-сервера, который включает отдельный процесс. Вы можете создать другую учетную запись в системе для доступа к SFTP, но, возможно, потребуется сделать файлы доступными вне пользовательского каталога.

Тестирование SFTP-сервера в Android

Давайте использовать Amaze File Manager с открытым исходным кодом. Нажмите кнопку + и выберите «Облачное соединение». Выберите соединение SCP / SFTP, и должно появиться всплывающее окно. Найдите IP-адрес вашего компьютера с помощью командной строки и команды IP-конфигурации. Например, мой компьютер имеет адрес 192.168.1.9

SFTP сервер Android

Введите его в поле сервера, оставьте номер порта как 22 и введите имя пользователя и пароль Windows в соответствующих полях. Он должен подключиться к вашему компьютеру, и вы сможете получить доступ ко всему содержимому, доступ к которому может получить учетная запись Windows.

Заключение

Одним из основных преимуществ SFTP-сервера является то, что вы сможете легко получать доступ или передавать файлы по сети. Это не единственный способ делиться файлами, есть также небезопасный SMB и т.д., о которых мы рассказывали в этой статье.

Звёзд: 1Звёзд: 2Звёзд: 3Звёзд: 4Звёзд: 5 (4 оценок, среднее: 4,00 из 5)

Загрузка…

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 позволяет работать с файлами прямо на сервере и легко справится с большинством задач: например, Вы можете изменить владельца, группу или права на файлы, как представлено на изображениях ниже:

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

Windows Server 2019 and Windows 10 (build 1809) have support for OpenSSH out-of-the-box, so there is no need to use any third-party library to run an SSH server or SFTP. In this post, I will demonstrate how to configure an SFTP server in Windows and use it to transfer files.

Contents

  1. FTPS vs. SFTP
  2. Install and configure the SFTP server.
  3. Custom SSH port [optional]
  4. Allow or deny connections
  5. Connect to OpenSSH server using SFTP
  6. Change the default SFTP directory
  7. Troubleshooting SFTP connections
  • Author
  • Recent Posts

Surender Kumar has more than twelve years of experience in server and network administration. His fields of interest are Windows Servers, Active Directory, PowerShell, web servers, networking, Linux, virtualization, and penetration testing. He loves writing for his blog.

Latest posts by Surender Kumar (see all)

  • Extending LVM space in Ubuntu — Thu, Feb 2 2023
  • Backup in Proxmox VE — Thu, Jan 26 2023
  • Snapshots in Proxmox VE — Wed, Jan 25 2023

FTPS vs. SFTP

The File Transfer Protocol (FTP) is no longer considered safe for use as it lacks the ability to encrypt data while it is in transit. If you still use FTP over a traditional FTP port number (TCP 21), all your data and commands are transmitted in clear text. Anyone can intercept this server–client communication, which is a big security concern as per modern IT standards. Two alternatives to FTP exist:

  • FTPS (FTP over SSL/TLS)—This method is just like the traditional FTP with the added support of a TLS certificate to offer encryption.
  • SFTP (FTP over SSH)—This method uses SSH for transferring files, which encrypts the communication by default.

Although both can serve the purpose of transferring files, they are totally different by design. FTPS is not very firewall friendly and is difficult to configure. Thus, I will focus on SFTP in this post.

I am using two VMs in a lab environment for this demo:

  1. Windows Server 2022—This will work as an OpenSSH server.
  2. Windows 10—This will work as a client.

I have also installed the FileZilla FTP client in a Windows 10 VM, which will connect to the OpenSSH server using the SFTP protocol. Of course, you can use WinSCP or any other FTP client that supports the SFTP protocol.

Install and configure the SFTP server.

First, log in to Windows Server VM and enable the optional OpenSSH feature. To do so, launch an elevated PowerShell console, and run the following command:

Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0

Installing an OpenSSH server in Windows using PowerShell

Installing an OpenSSH server in Windows using PowerShell

The installation was successful if the output includes Online : True. The command will automatically configure the required firewall rule, so there is nothing you need to do manually.

Now use the following command to change the startup mode of the OpenSSH server service (sshd) to automatic and start it at the same time:

Get-Service -Name "sshd" | Set-Service -Startup "Automatic" -PassThru | Start-Service -PassThru 

Change the service start mode and start the service using PowerShell

Change the service start mode and start the service using PowerShell

You can see that the service is now running. The main configuration file of the OpenSSH server on Windows is %ProgramData%sshsshd_config, but Windows can also read the configuration from the user profile (%UserProfile%.sshconfig) if available. Furthermore, it allows you to specify a custom configuration file using the -f switch (e.g., sshd.exe -f «c:usersadministrator.sshcustom_config»).

Custom SSH port [optional]

By default, the OpenSSH server listens on TCP Port 22. But you can change the port to something else by running the following PS command:

(Get-Content "C:ProgramDatasshsshd_config").replace("#Port 22", "Port 2223") | Set-Content "C:ProgramDatasshsshd_config"
Restart-Service "sshd"

Changing the OpenSSH server port on Windows using PowerShell

Changing the OpenSSH server port on Windows using PowerShell

The first command replaces the port number with the one you specify in the system-wide configuration file (%ProgramData%sshsshd_config), and the second command restarts the service. The following command can be used to make sure the server is now listening on a new port number:

Get-NetTCPConnection -LocalPort 2223 | select Local*, State,`
@{n="ProcessName";e={(Get-Process -Id $_.OwningProcess).ProcessName}},`
@{n="ProcessPath";e={(Get-Process -Id $_.OwningProcess).Path}} | ft -Auto

Verify the custom port of the OpenSSH server using PowerShell

Verify the custom port of the OpenSSH server using PowerShell

You can see that the OpenSSH server is now listening on Port 2223.

Allow or deny connections

The OpenSSH server in Windows also lets you control which users or groups are allowed to connect to the server (or denied a connection) using SFTP (and SSH). To do so, you can add the following directives to the configuration file:

  • DenyUsers
  • AllowUsers
  • DenyGroups
  • AllowGroups

Note that these directives are processed in the same order as written. By default, the OpenSSH server will allow every local or domain user to connect, but if you want to allow (or deny) a particular user or group, specify that in the configuration file, as shown in this line of code:

AllowGroups testlabdevelopers testlabssh_admins

Remember, these allow or deny directives must come before the Match Group administrators directive, as pointed out in the screenshot; otherwise, it won’t work as expected.

Using the SSH configuration file to allow or deny users and groups

Using the SSH configuration file to allow or deny users and groups

Adding the above line inside the SSH configuration file will allow the members of the developers and ssh_admins groups in the TestLab domain to connect, while denying everyone else. It is recommended to specify the account names in lowercase only. Furthermore, to specify a domain account in UPN format, you must replace the @ character with ? to avoid any conflicts with regular Linux patterns. For example, to specify user@domain.com with an allow or deny directive, you must type it as user?domain*.

Connect to OpenSSH server using SFTP

The OpenSSH server is now set to accept connections from the client. Head over to your Windows 10 machine, launch FileZilla, and make a connection to the server with the settings shown in the screenshot.

Connecting to the SFTP server using the FileZilla FTP client

Connecting to the SFTP server using the FileZilla FTP client

Make sure the protocol SFTP – SSH File Transfer Protocol and the correct SSH server port are specified. When you connect for the first time, you will see an Unknown host key warning. Click OK to trust the host and continue connecting.

The servers host key is unknown. You have no guarantee that the server is the computer you think it is.

The servers host key is unknown. You have no guarantee that the server is the computer you think it is.

You will now be connected to the server using the SFTP protocol, and you can start transferring files.

Using FileZilla client with the SFTP protocol to transfer files

Using FileZilla client with the SFTP protocol to transfer files

Change the default SFTP directory

By default, you will land in your user profile directory when you connect to the server. However, you can specify a custom directory in the sshd_config file to change the default root directory for SFTP. To do so, open the C:ProgramDatasshsshd_config file on the server in any text editor, and add the following line:

ChrootDirectory "C:inetpubwwwroot"

See the following screenshot for reference:

Change the default SFTP root directory in Windows

Change the default SFTP root directory in Windows

Restart the sshd service after making this change, and reconnect the server. You will now land in the specified directory (C:inetpubwwwroot). This is particularly useful on web servers, where you want users to land directly inside the website’s root directory instead of their home directory.

FileZilla FTP client connecting to a predefined root directory in Windows

FileZilla FTP client connecting to a predefined root directory in Windows

There are many other settings supported by the OpenSSH server, but covering everything is beyond the scope of this article.

Troubleshooting SFTP connections

If you run into any issues while working with OpenSSH server, you can always view the event logs under Applications and Services Logs OpenSSH, as shown in the following screenshot:

Viewing event logs related to OpenSSH in Windows

Viewing event logs related to OpenSSH in Windows

The OpenSSH server also supports file-based logging, so if you’re interested in that, add the following lines to the SSH configuration file and restart the sshd service.

SyslogFacility LOCAL0
LogLevel Debug3

Enabling file based debug logging using the OpenSSH configuration file

Enabling file based debug logging using the OpenSSH configuration file

Once you do this, you will be able to view the debug logs in the %ProgramData%sshlogs directory. As you can see in the following screenshot, the debug log showed that the user testjohn wasn’t able to connect to the server because they are not a member of any group specified in the AllowGroups directive.

Subscribe to 4sysops newsletter!

Viewing OpenSSH debug logs to troubleshoot problems

Viewing OpenSSH debug logs to troubleshoot problems

The procedure described here also allows you to connect to a Windows system using the SSH shell, which means that users who can connect using SFTP can also connect using any SSH client (like putty) and run commands. This is why it is very important to allow only a limited number of groups containing trusted people. I hope this guide helped you get started with SFTP as a safer alternative to an FTP server on Windows.

avatar

Содержание

  1. Как подключиться по ssh / Как подключиться по sftp
  2. Содержание
  3. Где взять данные для подключения к серверу по ssh / sftp?
  4. Подключение по ssh / sftp из Windows
  5. Подключение по ssh / sftp из Linux или Mac OS
  6. Подключение по sftp с помощью FileZilla
  7. Подключение по SFTP через WinSCP
  8. Включение SSH
  9. Установка и настройка WinSCP
  10. Подключение к серверу по SFTP
  11. Реквизиты подключения
  12. VestaCP
  13. ISPmanager
  14. Bitrix 7
  15. Установка и настройка SFTP сервера (SSH FTP) в Windows на базе OpenSSH
  16. Особенности протокола SFTP
  17. Реализация SFTP в системах Windows
  18. Установка Win32 OpenSSH в Windows 10 1803+/Windows Server 2019
  19. Установка Win32 OpenSSH на Windows Server 2016/2012 R2
  20. Тестируем SFTP подключение с помощью WinSCP
  21. Удаление службы Win32 OpenSSH
  22. Работа с SSH и SFTP
  23. PuTTY для Windows
  24. Терминал в Linux и Mac OS
  25. Secure Shell в браузере Google Chrome
  26. Использование SSH-ключей
  27. WinSCP для Windows
  28. Терминал в Linux и Mac OS

Как подключиться по ssh / Как подключиться по sftp

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

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

Содержание

Где взять данные для подключения к серверу по ssh / sftp?

Эти и другие данные вам присылаются в письме после создания и установки сервера. Найдите в письме такую часть (данные будут другие, это пример)

>> Данные для доступа к серверу (SSH)

IP Адрес : 91.215.152.7
Логин : root
Пароль : 1QyeB49TrR
Порт : 3333

именно эти данные необходимо использовать для подключения по ssh и sftp.

Подключение по ssh / sftp из Windows

Пользователям Windows мы рекомендуем использовать программу putty. Это один из наиболее популярных ssh клиентов, который распространяется бесплатно.

Для подключения по ssh с помощью putty выполните следующие шаги:

Шаг 1. Скачайте и запустите putty (putty.exe)

Putty1

Шаг 2. Введите ip сервера и выберите протокол ssh. Не забудьте указать правильный порт (обычно это или 3333, или 22).

Putty2

Шаг 3. При первом входе принимаем сертификат

Putty3

Шаг 4. Вводим логин и пароль

Putty4

Putty5

Примечание: При вводе пароля вы не видите введённых символов. Из-за этого многим кажется, что ничего не происходит. Однако это не так.

Полезные советы по работе с putty:

Подключение по ssh / sftp из Linux или Mac OS

Если вы используете Mac OS или Linux, то для подключения к серверу по протоколу ssh можете использовать стандартное приложение «Терминал» (terminal). Для подключения используйте команду (ip будет другой)

Процесс подключения выглядит так

Примечание: При вводе пароля вы не видите введённых символов. Из-за этого многим кажется, что ничего не происходит. Однако это не так.

Подключение по sftp с помощью FileZilla

Sftp1

после подключения нужно будет принять сертификат

Источник

Подключение по SFTP через WinSCP

Включение SSH

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

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

ssh

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

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

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

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

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

winscp1

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

winscp2

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

winscp3

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

winscp4

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

winscp6

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

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

winscp7

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

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

winscp8

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

winscp9

winscp10

Источник

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

Для подключения по SFTP можно воспользоваться FTP-клиентом, например, FileZilla.

Реквизиты подключения

Стандартно для подключения используются следующие реквизиты:

Если используется авторизация по RSA-ключу, то также потребуется указать кодовую фразу (если она была задана при создании RSA-ключа) и загрузить содержимое публичного ключа.

Не рекомендуется подключаться по SFTP от имени root-пользователя. Помимо того, что это небезопасно, это также менее удобно. После подключения под root вы по умолчанию окажетесь в домашней директории root (то есть /root), и для перехода к директории с вашими проектами потребуется перемещаться по файловой структуре. Кроме того, если вы загрузите файлы от имени root, для них будут выставлены пользователь и группа root:root, и веб-сервер не сможет прочитать их. Как следствие, на сайте появятся ошибки доступа к новым файлам.

VestaCP

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

После подключения вы окажетесь в директории /home/admin/

Директории сайтов размещаются по адресу: /home/admin/web/имя_домена

Если вы создали в VestaCP дополнительного пользователя (например, user) и добавили сайт в разделе WEB от его имени, подключиться по SFTP нужно с его реквизитами:

После подключения вы окажетесь в директории /home/user/

Директории сайтов размещаются по адресу: /home/user/web/имя_домена

ISPmanager

Необходимо, чтобы был отмечен пункт Доступ к shell.

sftp5

По умолчанию в ISPmanager создан пользователь www-root. Если вы размещали сайты в разделе «WWW-домены» от имени данного пользователя, то подключиться по SFTP можно с реквизитами:

После подключения вы окажетесь в директории /var/www/www-root/data/

Директории сайтов размещаются по адресу /var/www/www-root/data/www/имя_домена

Если вы создали дополнительного пользователя (например, user) и добавляли сайты от его имени, для подключения используйте его реквизиты:

После подключения вы окажетесь в директории /var/www/user/data

Директории сайтов размещаются по адресу /var/www/user/data/www/имя_домена

Bitrix 7

По умолчанию в системе Bitrix 7 создан пользователь bitrix. При подключении по SFTP необходимо использовать реквизиты:

После подключения вы окажетесь в директории /home/bitrix/

Директории сайтов размещаются по адресам /home/bitrix/www/ (для основного сайта) и /home/bitrix/ext_www/имя_домена (для дополнительных сайтов, созданных средствами BitrixVM).

По умолчанию в такой сборке для работы веб-серверов используется пользователь www-data. Для того, чтобы работать от другого пользователя, в том числе подключаться по SFTP, необходимо выполнить настройку по инструкции ниже.

Подключитесь к серверу по SSH и выполните следующие действия:

2. Установите пароль для нового пользователя:

3. Добавьте пользователя к группе www-data:

Сделайте группу www-data основной:

4. Откройте конфигурационный файл Nginx:

Источник

Установка и настройка SFTP сервера (SSH FTP) в Windows на базе OpenSSH

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

Особенности протокола SFTP

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

Реализация 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:

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

ustanovka Open SSH Server windows10

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

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

Файл 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 Мб).

, убедитесь, что создан каталог %programdata%ssh.

Тестируем SFTP подключение с помощью WinSCP

Попробуем подключиться к поднятому нами SSH серверу по протоколу SFTP. Для этих целей воспользуемся свободным клиентом WinSCP.

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

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

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

sftp client connection

Удаление службы Win32 OpenSSH

Чтобы корректно удалить службу Win32 OpenSSH из системы:

Источник

Работа с SSH и SFTP

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

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

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

PuTTY для Windows

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

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

putty 01 5da2da78a2849

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

putty 02 5da2da88b40f1

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

putty 04 5da2da96dced7

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

putty 05 5da2daa4d671d

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

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

linux 01 5da2dab30bb04

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

linux 03 5da2dabb206ed

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

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

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

shell 01 5da2dac84a8b3

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

shell 02 5da2dad5bead2

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

shell 03 5da2dae281b73

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

shell 04 5da2dafbefb34

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

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

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

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

Далее задаем имя ключа или оставляем вариант по умолчанию (

/.ssh/id_rsa). Вводим дополнительный пароль – пассфразу – и подтверждаем ее.

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

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

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

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

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

WinSCP для Windows

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

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

winscp 01 5da2db103184f

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

winscp 02 5da2db1bc4833

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

winscp 03 5da2db261ab52

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

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

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

linux 02 5da2db3089309

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

Источник

Работу с удаленным сервером невозможно представить без безопасной системы передачи файлов между ним и пользователем – и тут без SFTP обойтись сложно. Но чтобы протокол работал корректно, критически важна правильная настройка SFTP с разными версиями как Linux, так и Windows. В этой статье мы расскажем, как сделать это быстро и легко!

  • Что такое SFTP?
  • Как проходит настройка SFTP?
  • Настройка сервера с SSH File Transfer Protocol в Windows
  • Вместо P.S.

Что такое SFTP?

SSH File Transfer Protocol – именно так расшифровывается аббревиатура SFTP. В полном названии отлично видна главная особенность протокола: он построен на технологии Secure Shell. За счет этого передача всей информации зашифрована: от файлов до имен пользователей и паролей. Даже в FTPS (FTP с SSL), не говоря уже об обычном FTP, ограничений больше. Кстати, если вникнуть в детали, SFTP вообще не связан с FTP – у них разная технологическая база.

Кроме высокой защищенности SSH File Transfer Protocol имеет и другие плюсы:

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

Отдельно надо оговорить: протокол SFTP используется на UNIX-системах, и часто в стандартных утилитах уже есть и клиент, и сервер SSH.

Как проходит настройка SFTP?

Установка и настройка SSH File Transfer Protocol не слишком сложная, но рассказ стоит разделить на два направления – в зависимости от используемой ОС.

Настройка сервера с SSH File Transfer Protocol в Linux

В первую очередь следует установить на стороне сервера OpenSSH и на стороне пользователя SSH-пакет. Первая задача решается такими командами:

  • Ubuntu и Debian: sudo apt install openssh-server
  • CentOS и RHEL: sudo yum –y install openssh-server openssh-clients

А чтобы организовать доступ с компьютера, нужна команда следующего вида:

  • sudo apt install ssh

После этого можно перейти непосредственно к настройке SFTP. Всю работу стоит разделить на несколько этапов:

1. Создание групп и пользователей. Создавая пользователей и разделяя их по группам, вы сможете тонко регулировать их права, возможности и ограничения по доступу к тому или иному каталогу на сервере. Для этого необходимо выполнить:

  • создать группу: sudo groupadd GROUPNAME
  • добавить в нее пользователя: sudo useradd -g GROUPNAME USERNAME
  • задать пароль пользователя: sudo passwd PASSWORD

2. Создание каталогов. Если на сервере есть корневой каталог (назовем его для примера catalog), каждый пользователь может иметь доступ лишь к определенной «своей папке» – именно в нее он попадает при входе. При этом можно настроить SFTP так, чтобы пользователь мог видеть содержимое папки, но файл загружал в отдельный раздел (допустим, zagruzka). Вам понадобятся такие команды:

  • sudo mkdir -p /catalog/USERNAME/zagruzka
  • sudo chown -R root.GROUPNAME /catalog/ USERNAME
  • sudo chown -R USERNAME.GROUPNAME /catalog/USERNAME/zagruzka

3. Настройка sshd_config. Это необходимо для двух задач. С одной стороны, у пользователя будет открываться SFTP (а не обычная оболочка SSH). С другой же, он не сможет подняться в каталоге на уровень выше и видеть разделы для других пользователей. Для этого в файле /etc/ssh/sshd_config добавьте такой код:

Match Group GROUPNAME

     ChrootDirectory /catalog/%u

     ForceCommand internal-sftp

4. Перезагрузка. Чтобы вся система заработала, остается перезапустить ее:

  • sudo systemctl restart sshd

Все – настройка на Linux SFTP завершена! Вход аналогичен такой же команде под SSH. Для управления содержимым сервера используйте специальный синтаксис:

COMMAND [SOURCE] [DESTINATION]

Приведем несколько наиболее используемых примеров:

  • загрузка с удаленного сервера на локальный: GET photo1.jpg ~/Photos
  • загрузка с локального на удаленный: PUT ~/prices/price.pdf zagruzka/
  • удаление файла на удаленном сервере: RM zagruzka/file_325.xlsx

Настройка сервера с SSH File Transfer Protocol в Windows

Изначально настольные и серверные ОС от Microsoft не поддерживали протокол SFTP, потому для работы с ним требовались сторонние инструменты. Но сегодня уже существует официальный пакет для таких задач – Win32-OpenSSH. Запуск и настройка зависят от того, какая версия операционной системы установлена.

1. Windows Server 2019 или Windows 10 1803+

Эти варианты ОС от Microsoft предлагают максимально простой сценарий старта SFTP-сервера, ведь Win32-OpenSSH фактически есть в них. Способов установки два:

  • через PowerShell: задайте командлет вида Add-WindowsCapability -Online -Name OpenSSH.Server*
  • через интерфейс: Settings » Apps » Optional Features » Add a feature » Open SSH Server » Install

Остается узнать адреса, по которым будет расположено все самое важное:

  • исполняемые файлы: C:WindowsSystem32OpenSSH
  • конфигурационный файл: C:ProgramDatassh
  • лог: C:WindowsSystem32OpenSSHLogssshd.log
  • ключи: %USERNAME%.ssh

2. Windows Server 2016/2012 R2

В этой ОС, как и в ранних «десятках», для настройки SFTP надо скачать OpenSSH – вариант для 64-битной системы ищите на GitHub. После распаковки архива в нужный каталог (к примеру, C:catalog_OpenSSH) нужно выполнить ряд процедур:

  1. Откройте PowerShell под администратором и перейдите в созданный вами ранее целевой каталог командлетом Cd C:catalog_OpenSSH. Затем путь к нему необходимо добавить внести в переменную окружения Path.
  2. Запустите инсталляцию командой: .install-sshd.ps1 (успешность подтвердит сообщение с зелеными буквами). После этого следует сгенерировать ключи для запуска службы SSH указанием: ssh-keygen.exe -A
  3. В PowerShell запустите автозапуск службы SSH двумя последовательными командами: Set-Service -Name sshd -StartupType ‘Automatic’ и с новой строки Start-Service sshd.
  4. Откройте порт TCP 22 для входящего на SSH-сервер трафика. Это можно сделать в брандмауэре через PowerShell командой: New-NetFirewallRule -Protocol TCP -LocalPort 22 -Direction Inbound -Action Allow -DisplayName SSH
  5. Откройте конфигурационный файл (он расположен в C:ProgramDataSSH) и убедитесь, что в директиве Subsystem sftp корректно указан нужный файл – то есть sftp-server.exe.

После настройки в Windows SFTP остается только внести ряд изменений в файл конфигурации. Приведем несколько стандартных примеров:

  • AllowGroups corpadmingroup # открывает доступ к OpenSSH пользователям заданной группы
  • AuthenticationMethods password # запрещает SSH-ключи (вход будет только по паролю пользователя)
  • ForceCommand internal-sftp #

ChrootDirectory C:inetpubwwwrootftpfolder # создает и задает каталог входа для SFTP-пользователя

После всех корректировок запускайте клиент SFTP (например, WinSCP), вводите в нем тип и имя сервера, учетные данные – и логиньтесь (при первом подключении должно появиться сообщение об отсутствии в кэше ключа хоста). Если открылся привычный интерфейс файл-менеджера с каталогом пользователя на сервере, то значит: все настроено правильно!

Вместо P.S.

Практика показывает: хотя настройка SFTP достаточно проста, во многих случаях у пользователей возникают различные вопросы и нестандартные ситуации. Чтобы разобраться в них, не помешает грамотная помощь – в виде профессиональной техподдержки от провайдера. Мы в компании HostZealot уделяем ей максимум внимания. Заказываете ли вы VPS на Windows или Linux, вы сможете положиться на консультации наших специалистов – они помогут не только с отладкой SSH File Transfer Protocol, но и любыми другими задачами в настройке вашего сервера!

Понравилась статья? Поделить с друзьями:
  • Как закрепить иконку на панели задач windows 11
  • Как зайти на hypixel через minecraft windows 10 edition
  • Как зайти под безопасным режимом windows 10
  • Как зайти под администратором в windows 8 при загрузке
  • Как зайти под администратором в windows 7 не зная пароля