Настройка sftp сервера на windows server 2016

Организация сервера для защищенной передачи файлов по протоколу 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

В этой статье мы покажем, как использовать Win32-OpenSSH для запуска SFTP-сервера в Windows 10 или Windows Server 2016 / 2012R2.

Что такое SFTP?

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

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

  1. Файлы и команды передаются в безопасном сеансе SSH;
  2. Одно соединение используется для отправки файлов и команд;
  3. Поддерживаются символические ссылки, передача прерываний / возобновлений, функции удаления файлов и т. Д .;
  4. Как правило, в каналах, где FTP работает медленно или не работает, SFTP-соединение работает быстрее и надежнее;
  5. Возможность аутентификации с использованием ключей SSH.

Не путайте протоколы SFTP и FTPS. По сути, FTPS — это простой FTP с сертификатом SSL, а SFTP — это протокол для отправки данных и команд FTP внутри сеанса SSH.

Реализация SFTP в Windows

Исторически операционные системы Windows не предоставляют никаких встроенных инструментов для запуска защищенного SFTP-сервера. Для этих целей использовались открытые или проприетарные решения, такие как Core FTP, FileZilla, CYGWIN, OpenSSH, FTP Shell, IPSwitch и т. Д. Однако несколько лет назад Microsoft выпустила свою версию порта OpenSSH для Win32. Этот проект называется Win32-OpenSSH .

Рассмотрим конфигурацию SFTP-сервера под управлением Windows 10 или Windows Server 2019/2016/2012 R2 с использованием пакета Win32 OpenSSH .

Установка Win32 OpenSSH на Windows 10 1803+ / Windows Server 2019

В Windows 10 build 1803 и новее, а также в Windows Server 2019 пакет OpenSSH уже включен в операционную систему в форме Feature on Demand (FoD), такой как RSAT .

Вы можете установить сервер OpenSSH в Windows 10 и Windows Server 2019, используя следующий командлет PowerShell:

Add-WindowsCapability -Online -Name OpenSSH.Server*

Или используя DISM:
dism /Online /Add-Capability /CapabilityName:OpenSSH.Server~~~~0.0.1.0

Также вы можете добавить OpenSSH сервер из Windows 10 GUI ( Настройки -> Приложения -> Дополнительные функции -> Добавить функцию -> Открыть SSH Server -> Установить ).

1-install-opensshserver-feature-on-windows-10 Установка SFTP (SSH FTP) сервера в Windows с помощью OpenSSH

  • Исполняемые файлы OpenSSH находятся в каталоге c:windowssystem32OpenSSH:;
  • Sshd_config файл конфигурации находится в каталоге: C:ProgramDatassh(этот каталог создается после первого запуска службы Sshd);
  • Лог — файл: c:windowssystem32OpenSSHlogssshd.log;
  • Файл и ключи authorized_keys хранятся в директории: %USERPROFILE%.ssh.

Установите Win32 OpenSSH на Windows Server 2016/2012 R2

В предыдущих версиях Windows 10 и Windows Server 2016/2012 R2 необходимо загрузить и установить OpenSSH с GitHub. Вам необходимо скачать версию пакета для Windows x64: OpenSSH-Win64.zip (3,5 МБ).

  • Распакуйте архив в целевой каталог: C: OpenSSH-Win;
  • Запустите привилегированный клиент PowerShell и перейдите в папку OpenSSH: Cd C:OpenSSH-Win
  • Добавьте путь к каталогу OpenSSH в переменную среды Path (Свойства системы -> вкладка «Дополнительно» -> Переменные среды -> Выберите и измените системную переменную Path -> Добавить путь к папке OpenSSH);

2-openssh-folder-in-path-system-variable Установка SFTP (SSH FTP) сервера в Windows с помощью OpenSSH

  • Установите сервер OpenSSH: .install-sshd.ps1(должно появиться зеленое сообщение « Службы sshd и ssh-agent успешно установлены »);

3-install-sshd-powershell-script-in-openssh Установка SFTP (SSH FTP) сервера в Windows с помощью OpenSSH

  • Сгенерируйте ключи SSH для сервера (необходим для запуска службы sshd):
    ssh-keygen.exe –Assh-keygen: generating new host keys: RSA DSA ECDSA ED25519

4-generate-ssh-key-ssh-keygen.exe_ Установка SFTP (SSH FTP) сервера в Windows с помощью OpenSSH

  • Включите автозапуск для службы SSHD и запустите его, используя следующие команды управления службой PowerShell:
    Set-Service -Name sshd -StartupType ‘Automatic’
    Start-Service sshd
  • Перезагрузите компьютер:
    Restart-Computer
  • Используйте PowerShell, чтобы открыть TCP-порт 22 в брандмауэре Windows для входящего трафика SSH: New-NetFirewallRule -Protocol TCP -LocalPort 22 -Direction Inbound -Action Allow -DisplayName SSH

5-new-netfirewallrule-port-22-600x208-1 Установка SFTP (SSH FTP) сервера в Windows с помощью OpenSSH

Примечание . Предыдущая команда не будет работать в старых версиях Windows для настольных компьютеров. В этом случае используется другая команда: netsh advfirewall firewall add rule name='SSH Port' dir=in action=allow protocol=TCP localport=22

  • Откройте файл конфигурации SSHD (C: ProgramData SSH sshd_config) в любом текстовом редакторе. Найдите и проверьте значение директивы Subsystem sftp . SFTP-server.exe файл должен быть указан здесь.

6-openssh-sshd-config-file Установка SFTP (SSH FTP) сервера в Windows с помощью OpenSSH

Вы можете дополнительно настроить следующие параметры в файле конфигурации sshd_config:

AllowGroups corpsftp_users # разрешить подключение к OpenSSH только пользователям этой доменной группы

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

Тестирование SFTP-соединения с использованием WinSCP

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

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

7-winscp-test-sftp-server-600x402-1 Установка SFTP (SSH FTP) сервера в Windows с помощью OpenSSH

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

8-rsa2-key-warning Установка SFTP (SSH FTP) сервера в Windows с помощью OpenSSH

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

Используя знакомый интерфейс файлового менеджера ( например, Total Commander ), вы можете копировать файлы между сервером и клиентом. Файлы передаются с использованием безопасного SFTP.

9-connect-openssh-on-windows-using-winscp-1024x695-1 Установка SFTP (SSH FTP) сервера в Windows с помощью OpenSSH

Как удалить Win32 OpenSSH?

Чтобы правильно удалить Win32 OpenSSH из вашей системы:

  1. Запустите сеанс PowerShell с повышенными правами;
  2. Остановите службу SSHD:
    Stop-Service sshd
  3. Удалите службу sshd: .uninstall-sshlsa.ps1

    <span>sshd успешно удален</span><span>

    sshagent успешно удален</span>

You can use the built-in OpenSSH package in Windows to easily enable secure file transfers between the client and Windows server using the SFTP (Secure FTP) protocol. In this article, we will show how to install and configure an SFTP server on Windows 10 or Windows Server 2022/2019/2016/2012R2.

Contents:

  • How to Install OpenSSH on Windows?
  • How to Configure SFTP Server on Windows Using OpenSSH?
  • Connecting to SFTP Server Using WinSCP or PowerShell
  • Configuring SFTP Public Key Authentication

SFTP (Secure File Transfer Protocol, Secure FTP, or SSH FTP) is the extension of SSH protocol, which is the standard in the world of UNIX/Linux systems. From the user’s point of view, it is similar to FTP, but in fact, it is a completely different protocol, having nothing in common with FTP. Data between the client and the server is transmitted on port 22 through an SSH tunnel (TCP port 22).

The main advantages of SFTP:

  • Files and commands are transferred within a secure SSH session;
  • One connection is used to send both files and commands;
  • Symbolic links, interrupt/resume the transfer, file delete functions, etc. are supported;
  • SFTP connection is much faster and more reliable on WAN links where FTP is slow or intermittent;
  • Possibility to authenticate using SSH keys.

Do not confuse SFTP and FTPS protocols. FTPS is essentially just a simple FTP with an SSL certificate, and SFTP is the protocol to transfer the FTP data and commands inside the SSH session.

The win32 port of OpenSSH (Win32-OpenSSH) is built into all modern versions of Windows by default. You can use it to configure a secure SFTP server instead of using third-party products like Core FTP, FileZilla, CYGWIN, FTP Shell, IPSwitch, etc.

How to Install OpenSSH on Windows?

The OpenSSH package is a part of the operating system in modern builds of Windows 10 (starting from 1803), Windows 11, and Windows Server 2022/2019 as a Feature on Demand (like RSAT).

On these versions of Windows, you can install the OpenSSH server using PowerShell:

Add-WindowsCapability -Online -Name OpenSSH.Server*

Or using DISM:
dism /Online /Add-Capability /CapabilityName:OpenSSH.Server~~~~0.0.1.0

Also, you can install OpenSSH server from Windows 10 GUI (Settings -> Apps -> Optional Features -> Add a feature -> Open SSH Server -> Install).

install openssh server on windows 10

To check if a package is installed:

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

  • OpenSSH executables are located in the directory: c:windowssystem32OpenSSH;
  • The sshd_config configuration file is located in  C:ProgramDatassh (this directory is created after the first start of the sshd service);
  • Log file: c:windowssystem32OpenSSHlogssshd.log;
  • The authorized_keys file and keys are stored in a directory: %USERPROFILE%.ssh.

On the previous earlier builds of Windows 10, Windows 8.1, and on Windows Server 2016/2012 R2, you will have to download Win32-OpenSSH for Windows from GitHub and install it manually (https://github.com/PowerShell/Win32-OpenSSH/releases). We need a version for Windows x64: OpenSSH-Win64.zip (4,15 MB).

  1. Extract the archive to the target folder: C:OpenSSH-Win;
  2. Open an elevated PowerShell prompt and switch to the OpenSSH folder: Cd C:OpenSSH-Win
  3. Add the path to the OpenSSH directory to the Path environment variable (System Properties -> Advanced tab -> Environment Variables -> Select and edit the Path system variable -> Add the path to the OpenSSH folder); add openssh folder to the system variable path
  4. Install the OpenSSH server: .install-sshd.ps1 (a green message should appear “sshd and ssh-agent services successfully installed”);

    If running PowerShell scripts on your computer is blocked by your PowerShell Execution Policy, you can run the script with this command: powershell.exe -ExecutionPolicy Bypass -File install-sshd.ps1

    install openssh (sshd service) with powershell script

How to Configure SFTP Server on Windows Using OpenSSH?

Now you need to configure OpenSSH on Windows for SFTP mode.

Enable autostart for the SSHD service and start it using the following PowerShell service management commands:
Set-Service -Name sshd -StartupType 'Automatic'
Start-Service sshd

Use the PowerShell to open TCP port 22 in the Windows Firewall for incoming SSH traffic:

 New-NetFirewallRule -Protocol TCP -LocalPort 22 -Direction Inbound -Action Allow -DisplayName SSHNew-NetFirewallRule - add incoming rule port 22

Note. The previous command won’t work in old desktop Windows versions. In this case, another command is used: netsh advfirewall firewall add rule name='SSH Port' dir=in action=allow protocol=TCP localport=22

Open the SSHD configuration file (C:ProgramDataSSHsshd_config) in any text editor.  Find and check the value of the Subsystem sftp directive. The sftp-server.exe file should be specified here.openssh sshd_config file in windows

You can additionally configure the following parameters in the sshd_config configuration file:

# only allow users in this domain group to connect to OpenSSH
AllowGroups corpsftp_users
# enable password authentication (SSH keys cannot be used)
AuthenticationMethods password
#default (chrooot) directory for SFTP users  (by default, the user connects to the directory with his profile in the C:usersusername folder)
ChrootDirectory C:SFTP
ForceCommand internal-sftp
#You can set an individual chrootdirectory for each user:
Match User abrown
ChrootDirectory c:SFTPabrown
ForceCommand internal-sftp
X11Forwarding no
AllowTcpForwarding no

Match User jsmith
ChrootDirectory c:SFTPjsmith
ForceCommand internal-sftp
X11Forwarding no
AllowTcpForwarding no

Connecting to SFTP Server Using WinSCP or PowerShell

Now you can connect to your Windows SSH server using the SFTP protocol. Next, we’ll show you how to connect to an SFTP server using the free WinSCP client, the PowerShell console, and the built-in sftp.exe tool.

In the connection configuration window, select the SFTP as the file transfer protocol, specify the server name and the credentials of the Windows account (use the user@domain format for domain users), which is used for connection (it is also possible to configure public key authentication).

WinSCP test sftp connection

When you try to connect for the first time, the following notification of the host key not found in the local cache appears.

rsa2 key warning

If everything is configured correctly, a client should connect to the SFTP server and display the list of files in the user’s home chroot directory (by default, it is the user’s profile directory).

Using the familiar file manager interface (like Total Commander), you can copy files between the server and the client using the secure SFTP protocol.

connect openssh on windows server using winscp

You can use the Posh-SSH module to connect to an SFTP server from PowerShell. You can download and install the module from the PowerShell Gallery or offline:

Install-Module -Name Posh-SSH

install posh-ssh module in windows

To connect to the SFTP server using a password, you need to get the username and password via Get-Credential:

$usrCreds= Get-Credential

Now you can connect to your SFTP server:

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

Now you can list the files in the remote directory on the SFTP server. In this example, I will get a list of files on the user’s Desktop (the user’s profile will be the root user folder/chroot in this case)

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

powershell: list files in sftp folder

Download a file from a remote SFTP server:
Get-SFTPItem -SessionId $SFTPSession.SessionId -Path "desktop/OpenVPNScript.log" -Destination c:PS

To upload a file from your computer to a remote SFTP host:

Set-SFTPItem -SessionId $SFTPSession.SessionId -Path C:PSmytestfile.log -Destination "desktop"

upload files to sftp with powershell

Close the SFTP session:

Remove-SFTPSession -SFTPSession $SFTPSession

On Windows, you can use the built-in sftp.exe console command (installed with the OpenSSH client) to connect to an SFTP server.

sftp.exe tool in windows

Connect to sftp server:

sftp user1@192.168.3.20

Connect using ssh private key:

sftp -i .ssh/id_rsa user1@192.168.3.20

List files in a remote directory:

pwd

Download the file from SFTP to a local directory on your computer:

get download_this_file_from_sftp.txt

Upload a file from your computer to an SFTP server:

put file_to_uplodad.txt

Close session:

exit

Configuring SFTP Public Key Authentication

You can enable SFTP key-based authentication in Windows. In this case, you can authenticate to the SFTP server without entering a password.

  1. Create SSH keys on your computer (SFTP client) for the user under which you will connect to the server: ssh-keygen -t ed25519 generate ssh keys for sftp connections
  2. The ssh-keygen tool will generate two files id_ed25519 (private key for the client computer) and id_ed25519.pub (public key for the SFTP server);
  3. Now you need to add your SSH key to the Windows server (SFTP host). Copy the file id_ed25519.pub (or id_rsa.pub depending on the key type) to the .ssh directory of the user profile under which you will connect to the SFTP. Rename the file to authorized_keys (for example, the following key file is used for the user max1: C:Usersmax1.sshauthorized_keys )

Now you can use the id_ed25519 file to authenticate on the SFTP server. You can set your key in the WinSCP settings (Advanced -> to SSH connection settings > Authentication page -> Private key file).

If you want to use an SSH key when connecting to SFTP from PowerShell, use the following command:

New-SFTPSession -ComputerName 192.168.3.20 -Credential remoteuser1 -KeyFile C:Usersmax1.sshid_ed25519" -Verbose

SFTP stands for SSH file transfer protocol or Secure File Transfer Protocol. This pacgage works over a secure connection and the advantage is the ability to leverage a secure connection to transfer files and traverse the filesystem on both local and remote system.

The following steps shows how to setup SFTP using OpenSSH on Windows 2016 Server

Step 1: Download the OpenSSH from the link https://github.com/PowerShell/Win32-OpenSSH/releases”>Make This Nofollow

Step 2: Locate the downloaded file, right-click and Extract All to C:Program FilesOpenSSH-Win64

Step 3: Modify the Path system environment variable by running the command “/” or add the variable in System Properties -> Environment variable path

To setup the environment variable using PowerShell –

  1. Open PowerShell as Administrator
  2. Setx PATH “$env:path; C:Program FilesOpenSSH-Win64” –m

You should see the following output-

SUCCESS: Specified value was saved

Step 4: Change to the OpenSSH directory

                cd “C:Program FilesOpenSSH-Win64”

Step 5: Run the install script

                .install-sshd.ps1

OR run in PowerShell as below

                PS C:windowssystem32> powershell.exe –ExecutionPolicy Bypass –File install-sshd.ps1

Step 6: Enable automatic startup and start sshd and ssh-agent

                Set-Service sshd -StartupType Automatic; Set-Service ssh-agent -StartupType Automatic; Start-Service sshd; Start-Service ssh-agent

Step 7: Allow Access in Windows Firewall

a. Open Windows Firewall and create a new inbound rule for SFTP

Windows Firewall

b. Create a new rule and select custom and select protocol and ports

protocol and ports

Create a new rule and select custom and select protocol and ports

c. Under the section Scope, let the rule apply to Any IP Address from remote and local IP addresses and click Next

d. Under Action, select Allow the connection and click Next

e. Name the Rule and select Finish

To enable port via PowerShell, please execute the follow command

                >New-NetFirewallRule -Name sshd -DisplayName ‘OpenSSH SSH Server’ -Enabled True -Direction Inbound -Protocol TCP -Action Allow -LocalPort 22 -Program “C:System32OpenSSHsshd.exe”

Step 8: Edit the sshd_config file and make the following changes to add path and user /group

Edit the sshd_config file

sshd_config file

Step 9: Stop and restart the sshd services by executing the following command

                Net stop sshd

                Net start sshd

Stop and restart the sshd services

SFTP Is configured successfully using OpenSSH

At Velan, our server support engineers can help you setup sftp server using OpenSSH on Windows 2016 server. We troubleshoot problems like these for our clients every day. If you are interested in our service, please fill the Quick connect form to get in touch with us

Содержание

  1. Установка SFTP (SSH FTP) сервера в Windows с помощью OpenSSH
  2. Вы можете использовать официальный пакет OpenSSH для Windows, чтобы легко организовать безопасную передачу файлов между клиентом и сервером Windows, используя протокол SFTP ( Secure FTP ).
  3. Что такое SFTP?
  4. Реализация SFTP в Windows
  5. Установка Win32 OpenSSH на Windows 10 1803+ / Windows Server 2019
  6. Установите Win32 OpenSSH на Windows Server 2016/2012 R2
  7. Тестирование SFTP-соединения с использованием WinSCP
  8. Как удалить Win32 OpenSSH?
  9. Installing SFTP/SSH Server on Windows using OpenSSH
  10. Installing SFTP/SSH Server
  11. On Windows 11 and Windows 10
  12. On earlier versions of Windows
  13. Configuring SSH server
  14. Setting up SSH public key authentication
  15. Connecting to the server
  16. Finding Host Key
  17. Connecting
  18. Configuring SFTP (SSH FTP) Server on Windows
  19. How to Install OpenSSH on Windows?
  20. How to Configure SFTP Server on Windows Using OpenSSH?
  21. Connecting to SFTP Server Using WinSCP or PowerShell
  22. Configuring SFTP Public Key Authentication

Установка 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 . Данные передаются между клиентом и сервером через туннель SSH (TCP-порт 22).

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

  1. Файлы и команды передаются в безопасном сеансе SSH;
  2. Одно соединение используется для отправки файлов и команд;
  3. Поддерживаются символические ссылки, передача прерываний / возобновлений, функции удаления файлов и т. Д .;
  4. Как правило, в каналах, где FTP работает медленно или не работает, SFTP-соединение работает быстрее и надежнее;
  5. Возможность аутентификации с использованием ключей SSH.

Не путайте протоколы SFTP и FTPS. По сути, FTPS — это простой FTP с сертификатом SSL, а SFTP — это протокол для отправки данных и команд FTP внутри сеанса SSH.

Реализация SFTP в Windows

Исторически операционные системы Windows не предоставляют никаких встроенных инструментов для запуска защищенного SFTP-сервера. Для этих целей использовались открытые или проприетарные решения, такие как Core FTP, FileZilla, CYGWIN, OpenSSH, FTP Shell, IPSwitch и т. Д. Однако несколько лет назад Microsoft выпустила свою версию порта OpenSSH для Win32. Этот проект называется Win32-OpenSSH .

Рассмотрим конфигурацию SFTP-сервера под управлением Windows 10 или Windows Server 2019/2016/2012 R2 с использованием пакета Win32 OpenSSH .

Установка Win32 OpenSSH на Windows 10 1803+ / Windows Server 2019

В Windows 10 build 1803 и новее, а также в Windows Server 2019 пакет OpenSSH уже включен в операционную систему в форме Feature on Demand (FoD), такой как RSAT .

Вы можете установить сервер OpenSSH в Windows 10 и Windows Server 2019, используя следующий командлет PowerShell:

Add-WindowsCapability -Online -Name OpenSSH.Server*

Или используя DISM:
dism /Online /Add-Capability /CapabilityName:OpenSSH.Server

Также вы можете добавить OpenSSH сервер из Windows 10 GUI ( Настройки -> Приложения -> Дополнительные функции -> Добавить функцию -> Открыть SSH Server -> Установить ).

  • Исполняемые файлы OpenSSH находятся в каталоге c:windowssystem32OpenSSH :;
  • Sshd_config файл конфигурации находится в каталоге: C:ProgramDatassh (этот каталог создается после первого запуска службы Sshd);
  • Лог — файл: c:windowssystem32OpenSSHlogssshd.log ;
  • Файл и ключи authorized_keys хранятся в директории: %USERPROFILE%.ssh .

Установите Win32 OpenSSH на Windows Server 2016/2012 R2

В предыдущих версиях Windows 10 и Windows Server 2016/2012 R2 необходимо загрузить и установить OpenSSH с GitHub . Вам необходимо скачать версию пакета для Windows x64: OpenSSH-Win64.zip (3,5 МБ).

  • Распакуйте архив в целевой каталог: C: OpenSSH-Win;
  • Запустите привилегированный клиент PowerShell и перейдите в папку OpenSSH: Cd C:OpenSSH-Win
  • Добавьте путь к каталогу OpenSSH в переменную среды Path (Свойства системы -> вкладка «Дополнительно» -> Переменные среды -> Выберите и измените системную переменную Path -> Добавить путь к папке OpenSSH);

  • Установите сервер OpenSSH: .install-sshd.ps1 (должно появиться зеленое сообщение « Службы sshd и ssh-agent успешно установлены »);

  • Сгенерируйте ключи SSH для сервера (необходим для запуска службы sshd):
    ssh-keygen.exe –A ssh-keygen: generating new host keys: RSA DSA ECDSA ED25519

  • Включите автозапуск для службы SSHD и запустите его, используя следующие команды управления службой PowerShell:
    Set-Service -Name sshd -StartupType ‘Automatic’
    Start-Service sshd
  • Перезагрузите компьютер:
    Restart-Computer
  • Используйте PowerShell, чтобы открыть TCP-порт 22 в брандмауэре Windows для входящего трафика SSH: New-NetFirewallRule -Protocol TCP -LocalPort 22 -Direction Inbound -Action Allow -DisplayName SSH

Примечание . Предыдущая команда не будет работать в старых версиях Windows для настольных компьютеров. В этом случае используется другая команда: netsh advfirewall firewall add rule name=’SSH Port’ dir=in action=allow protocol=TCP localport=22

  • Откройте файл конфигурации SSHD (C: ProgramData SSH sshd_config) в любом текстовом редакторе. Найдите и проверьте значение директивы Subsystem sftp . SFTP-server.exe файл должен быть указан здесь.

Вы можете дополнительно настроить следующие параметры в файле конфигурации sshd_config:

AllowGroups corpsftp_users # разрешить подключение к OpenSSH только пользователям этой доменной группы

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

Тестирование SFTP-соединения с использованием WinSCP

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

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

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

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

Используя знакомый интерфейс файлового менеджера ( например, Total Commander ), вы можете копировать файлы между сервером и клиентом. Файлы передаются с использованием безопасного SFTP.

Как удалить Win32 OpenSSH?

Чтобы правильно удалить Win32 OpenSSH из вашей системы:

Источник

Installing SFTP/SSH Server on Windows using OpenSSH

Recently, Microsoft has released a port of OpenSSH for Windows. You can use the package to set up an SFTP /SSH server on Windows.

Installing SFTP/SSH Server

On Windows 11 and Windows 10

  • On Windows 11:
    • Go to Settings > Apps > Optional features and click on View features.
    • Locate “OpenSSH server” feature, select it, click Next, and then click Install.
  • On Windows 10 (version 1803 and newer):
    • Go to Settings > Apps > Apps & features > Optional features and click on Add a feature.
    • Locate “OpenSSH server” feature, expand it, and select Install.

Binaries are installed to %WINDIR%System32OpenSSH . Configuration file ( sshd_config ) and host keys are installed to %ProgramData%ssh (only after the server is started for the first time).

You may still want to use the following manual installation if you want to install a newer version of OpenSSH than the one built into Windows.

On earlier versions of Windows

  • Download the latest OpenSSH for Windows binaries (package OpenSSH-Win64.zip or OpenSSH-Win32.zip )
  • As the Administrator, extract the package to C:Program FilesOpenSSH
  • As the Administrator, install sshd and ssh-agent services:

Configuring SSH server

  • Allow incoming connections to SSH server in Windows Firewall:
    • When installed as an optional feature, the firewall rule “OpenSSH SSH Server (sshd)” should have been created automatically. If not, proceed to create and enable the rule as follows.
    • Either run the following PowerShell command as the Administrator:
      Replace C:WindowsSystem32OpenSSHsshd.exe with the actual path to the sshd.exe ( C:Program FilesOpenSSHssh.exe , had you followed the manual installation instructions above).
    • or go to Windows Security > Firewall & network protection1> Advanced Settings > Inbound Rules and add a new rule for port 22.
  • Start the service and/or configure automatic start:
    • Go to Control Panel > System and Security > Administrative Tools and open Services. Locate OpenSSH SSH Server service.
    • If you want the server to start automatically when your machine is started: Go to Action > Properties (or just double-click the service). In the Properties dialog, change Startup type to Automatic and confirm.
    • Start the OpenSSH SSH Server service by clicking the Start the service link or Action > Start in the menu.

Setting up SSH public key authentication

Follow a generic guide for Setting up SSH public key authentication in *nix OpenSSH server, with the following difference:

Connecting to the server

Finding Host Key

Before the first connection, find out the fingerprint of the server’s host key by using ssh-keygen.exe for each file.

In Windows command-prompt, use:

Replace %WINDIR%System32 with %ProgramFiles% , if appropriate.

In PowerShell, use:

Replace $env:WINDIRSystem32 with $env:ProgramFiles , if appropriate.

You will get an output like this:

Connecting

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

  • Make sure New site node is selected.
  • On New site node, make sure the SFTP protocol is selected.
  • Enter your machine/server IP address (or a hostname) into the Host name box.
  • Enter your Windows account name to the User name box. It might have to be entered in the format user@domain if running on a domain.
  • For a public key authentication:
    • Press the Advanced button to open Advanced site settings dialog and go to SSH > Authentication page.
    • In Private key file box select your private key file.
    • Submit Advanced site settings dialog with the OK button.
  • For a password authentication:
    • Enter your Windows account password to the Password box.
    • If your Windows account does not have a password, you cannot authenticate with the password authentication (i.e. with an empty password), you need to use the public key authentication.
  • Save your site settings using the Save button.
  • Login using Login button.
  • Verify the host key by comparing fingerprints with those collected before (see above).

If you cannot authenticate to the server and use Windows 10 Developer mode, make sure that your OpenSSH server does not conflict with an internal SSH server used by the Developer mode. You may need to turn off the SSH Server Broker and SSH Server Proxy Windows services. Or run your OpenSSH server on a different port than 22.

Источник

Configuring SFTP (SSH FTP) Server on Windows

You can use the built-in OpenSSH package in Windows to easily enable secure file transfers between the client and Windows server using the SFTP (Secure FTP) protocol. In this article, we will show how to install and configure an SFTP server on Windows 10 or Windows Server 2022/2019/2016/2012R2.

The main advantages of SFTP:

  • Files and commands are transferred within a secure SSH session;
  • One connection is used to send both files and commands;
  • Symbolic links, interrupt/resume the transfer, file delete functions, etc. are supported;
  • SFTP connection is much faster and more reliable on WAN links where FTP is slow or intermittent;
  • Possibility to authenticate using SSH keys.

The win32 port of OpenSSH (Win32-OpenSSH) is built into all modern versions of Windows by default. You can use it to configure a secure SFTP server instead of using third-party products like Core FTP, FileZilla, CYGWIN, FTP Shell, IPSwitch, etc.

How to Install OpenSSH on Windows?

The OpenSSH package is a part of the operating system in modern builds of Windows 10 (starting from 1803), Windows 11, and Windows Server 2022/2019 as a Feature on Demand (like RSAT).

Add-WindowsCapability -Online -Name OpenSSH.Server*

Or using DISM:
dism /Online /Add-Capability /CapabilityName:OpenSSH.Server

Also, you can install OpenSSH server from Windows 10 GUI (Settings -> Apps -> Optional Features -> Add a feature -> Open SSH Server -> Install).

To check if a package is installed:

Get-WindowsCapability -Online | ? Name -like ‘OpenSSH*’

  • OpenSSH executables are located in the directory: c:windowssystem32OpenSSH ;
  • The sshd_config configuration file is located in C:ProgramDatassh (this directory is created after the first start of the sshd service);
  • Log file: c:windowssystem32OpenSSHlogssshd.log ;
  • The authorized_keys file and keys are stored in a directory: %USERPROFILE%.ssh .

On the previous earlier builds of Windows 10, Windows 8.1, and on Windows Server 2016/2012 R2, you will have to download Win32-OpenSSH for Windows from GitHub and install it manually (https://github.com/PowerShell/Win32-OpenSSH/releases). We need a version for Windows x64: OpenSSH-Win64.zip (4,15 MB).

  1. Extract the archive to the target folder: C:OpenSSH-Win;
  2. Open an elevated PowerShell prompt and switch to the OpenSSH folder: Cd C:OpenSSH-Win
  3. Add the path to the OpenSSH directory to the Path environment variable (System Properties -> Advanced tab -> Environment Variables -> Select and edit the Path system variable -> Add the path to the OpenSSH folder);
  4. Install the OpenSSH server: .install-sshd.ps1 (a green message should appear “ sshd and ssh-agent services successfully installed ”);

How to Configure SFTP Server on Windows Using OpenSSH?

Now you need to configure OpenSSH on Windows for SFTP mode.

Enable autostart for the SSHD service and start it using the following PowerShell service management commands:
Set-Service -Name sshd -StartupType ‘Automatic’
Start-Service sshd

Use the PowerShell to open TCP port 22 in the Windows Firewall for incoming SSH traffic:

New-NetFirewallRule -Protocol TCP -LocalPort 22 -Direction Inbound -Action Allow -DisplayName SSH

Open the SSHD configuration file ( C:ProgramDataSSHsshd_config ) in any text editor. Find and check the value of the Subsystem sftp directive. The sftp-server.exe file should be specified here.

Connecting to SFTP Server Using WinSCP or PowerShell

Now you can connect to your Windows SSH server using the SFTP protocol. Next, we’ll show you how to connect to an SFTP server using the free WinSCP client, the PowerShell console, and the built-in sftp.exe tool.

In the connection configuration window, select the SFTP as the file transfer protocol, specify the server name and the credentials of the Windows account (use the user@domain format for domain users), which is used for connection (it is also possible to configure public key authentication).

When you try to connect for the first time, the following notification of the host key not found in the local cache appears.

If everything is configured correctly, a client should connect to the SFTP server and display the list of files in the user’s home chroot directory (by default, it is the user’s profile directory).

Using the familiar file manager interface (like Total Commander), you can copy files between the server and the client using the secure SFTP protocol.

You can use the Posh-SSH module to connect to an SFTP server from PowerShell. You can download and install the module from the PowerShell Gallery or offline:

Install-Module -Name Posh-SSH

To connect to the SFTP server using a password, you need to get the username and password via Get-Credential:

Now you can connect to your SFTP server:

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

Now you can list the files in the remote directory on the SFTP server. In this example, I will get a list of files on the user’s Desktop (the user’s profile will be the root user folder/chroot in this case)

Get-SFTPChildItem -SFTPSession $SFTPSession -Path «desktop» –Recurse

Download a file from a remote SFTP server:
Get-SFTPItem -SessionId $SFTPSession.SessionId -Path «desktop/OpenVPNScript.log» -Destination c:PS

To upload a file from your computer to a remote SFTP host:

Set-SFTPItem -SessionId $SFTPSession.SessionId -Path C:PSmytestfile.log -Destination «desktop»

Close the SFTP session:

Remove-SFTPSession -SFTPSession $SFTPSession

On Windows, you can use the built-in sftp.exe console command (installed with the OpenSSH client) to connect to an SFTP server.

Connect to sftp server:

Connect using ssh private key:

sftp -i .ssh/id_rsa user1@192.168.3.20

List files in a remote directory:

Download the file from SFTP to a local directory on your computer:

Upload a file from your computer to an SFTP server:

Configuring SFTP Public Key Authentication

You can enable SFTP key-based authentication in Windows. In this case, you can authenticate to the SFTP server without entering a password.

  1. Create SSH keys on your computer (SFTP client) for the user under which you will connect to the server: ssh-keygen -t ed25519
  2. The ssh-keygen tool will generate two files id_ed25519 (private key for the client computer) and id_ed25519.pub (public key for the SFTP server);
  3. Now you need to add your SSH key to the Windows server (SFTP host). Copy the file id_ed25519.pub (or id_rsa.pub depending on the key type) to the .ssh directory of the user profile under which you will connect to the SFTP. Rename the file to authorized_keys (for example, the following key file is used for the user max1 : C:Usersmax1.sshauthorized_keys )

Now you can use the id_ed25519 file to authenticate on the SFTP server. You can set your key in the WinSCP settings (Advanced -> to SSH connection settings > Authentication page -> Private key file).

If you want to use an SSH key when connecting to SFTP from PowerShell, use the following command:

New-SFTPSession -ComputerName 192.168.3.20 -Credential remoteuser1 -KeyFile C:Usersmax1.sshid_ed25519″ -Verbose

Источник



Posted in
: NetScaler

By Rasmus Kindberg


Translate with Google ⟶

3 years ago

For a recent customer engagement we needed to provide internal and external users with the ability to upload/download files through SFTP to a specific backend-server. For security reasons we decided to tunnel the SFTP traffic through the customer’s Netscaler, and so for this setup you need to do some Netscaler configuration and then the actual SFTP server configuration on the backend server.
The native FTP software available as an addon in IIS does not support SFTP, and we do not wish to use regular FTP since username/passwords will be sent in clear text over the network. FTPS was not an option for us since the FTP client the users will be using does not support it.
Another important factor or requirement is to have AD authentication available, so admins don’t have to manage specific SFTP accounts and also so users don’t have to remember an additional username/password for SFTP. So I looked at a few freeware options for SFTP server (Turbo SFTP for example), but none of them really worked that great. Finally I ended up using the OpenSSH version for Windows (https://github.com/PowerShell/Win32-OpenSSH/releases) since this satisfied all the requirements.
Below are the steps to installing and configuring OpenSSH for Windows.

  1. Download ”OpenSSH-Win64.zip” from https://github.com/PowerShell/Win32-OpenSSH/releases
  2. Extract downloaded zip file
  3. Create folder ”C:Program Files (x86)OpenSSH-Win64” and copy the extracted files there
  4. Run below in cmd (run cmd as admin):
    powershell.exe -file ”C:Program Files (x86)OpenSSH-Win64install-sshd.ps1”
  5. Run services.msc and change Startup Type from Manual to Automatic for the two new services ”OpenSSH Authentication Agent” and ”OpenSSH SSH Server”
  6. Edit file ”C:ProgramDatasshsshd_config” in notepad and add below text at top of file. Note that any group names and folder paths specified in the config must be specified using lowercase letters (but whether the real group/folder names are lowercase or not doesn’t matter). See https://github.com/PowerShell/Win32-OpenSSH/wiki/sshd_config for more info
  7. #CUSTOM
    #Restricts logon through SFTP to only these users
    AllowGroups mydomainsomerandomadgroup
    #We specify that we only allow logons for connections originating from IP 192.168.1.101. #In this case this IP is the Netscaler Subnet IP, the IP the Netscaler will use to communicate with the backend server.
    #We don't want to allow any device/person, except our Netscaler, to be able to connect to our SFTP server.
    AllowUsers *@192.168.1.101
    #Specifies that we're using passwords and not SSH keys to authenticate
    AuthenticationMethods password
    #Forcing SFTP functionality, needed for ChrootDirectory parameter below
    ForceCommand internal-sftp
    #Specify the default folder the user sees after SFTP authentication. Without this, users will see C:usersmyuser as default folder, which is not usually preferable.
    ChrootDirectory C:inetpubwwwrootftpfolder
    #Below three parameters are recommended as best practice to prevent certain security bypassing
    AllowTcpForwarding no
    PermitTunnel no
    GatewayPorts no
  8. Restart service ”OpenSSH SSH Server” (any changes to config file above won’t take effect until service is restarted)
  9. Optional: Open port 22 in the Windows Firewall on the backend server so Netscaler can communicate with it.
  10. Now you can use SFTP to connect to this server using AD credentials (just entering sAMAccountName is sufficient). Only users in AD grup ’mydomainSomeRandomADGroup’ are allowed to logon. Access to any subfolders in C:inetpubwwwrootftp through SFTP will be dictated by NTFS rights. I suggest using AD groups + NTFS rights to control which subfolders the users should be able to read/write to.

 
The Netscaler configuration is quite trivial. After below you probably want to create an internal and external dns, such as ’myapp.mydomain.com’, pointing to 192.168.1.15 internally and the external IP (which gets NATed to 172.16.1.155 in firewall) so that users can specify ’myapp.mydomain.com’ in their SFTP client (instead of IP addresses).

add ns acl A-ANY-CS-INTERNAL_15_SFTP-TCP_22 ALLOW -destIP = 192.168.1.15 -destPort = 22 -protocol TCP -priority 70
add ns acl A-ANY-CS-DMZ_155_SFTP-TCP_22 ALLOW -destIP = 172.16.1.155 -destPort = 22 -protocol TCP -priority 80
add server myserver.mydomain.local 192.168.2.25 -comment "SFTP server"
add service SVC-APPNAME-SFTP myserver.mydomain.local TCP 22 -healthMonitor YES -gslb NONE -maxClient 0 -maxReq 0 -usip NO -useproxyport YES -cltTimeout 180 -svrTimeout 360 -CKA NO -TCPB NO -CMP NO -appflowLog DISABLED -CIP ENABLED X-MS-Forwarded-Client-IP -netProfile NP_INTERNAL_SNIP
add lb monitor MON-APPNAME-SFTP TCP -LRTM ENABLED -destPort 22 -interval 20 -resptimeout 15 -netProfile NP_INTERNAL_SNIP-MON
bind service SVC-APPNAME_SFTP -monitorName MON-APPNAME-SFTP
add lb vserver LB-EXT_APPNAME_SFTP TCP 192.168.1.15 22 -persistenceType SOURCEIP -timeout 30
add lb vserver LB-INT_APPNAME_SFTP TCP 172.16.1.155 22 -persistenceType SOURCEIP -timeout 30
bind lb vserver LB-INT_APPNAME_SFTP SVC-APPNAME_SFTP
bind lb vserver LB-EXT_APPNAME_SFTP SVC-APPNAME_SFTP

Tags
: ftp, openssh, sftp

В статье я покажу, как настроить настроить 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)

Загрузка…

Как настроить Secure (SFTP)

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

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

Начать работу с самозаверенным сертификатом просто:

1. Нужно зайти в окно диспетчера IIS и выбрать параметр «Сертификаты».

2. В правой подменю необходимо выбрать создание самоподписанного типа.

3. Ввести его название.

Чтобы настроить SFTP потребуется вернуться к начальной странице (кликнуть по FTP в левом подменю) и открыть параметры, как на скриншоте.

Открывшееся окно предложить сделать выбор политики – укажите второй вариант с требованиями SSL-соединений.

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

• Протоколом должен выступить FTP;

• В качестве шифрования из выпадающего меню выбирается «Явное»;

• Именем хосту будет служить айпи или доен;

• Если не было настроек других портов, нужно выбирать 21-й;

• Последними указываются логин и пароль.

После входа появится все, что содержит FTP-каталог.

Настроить сервер

Когда мы запускаем этот инструмент, мы видим окно, подобное приведенному ниже.

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

Оставляя в стороне конфигурацию (хотя нам придется пересмотреть ее позже, особенно для безопасности), мы собираемся создать новый FTP-сервер. Для этого щелкните правой кнопкой мыши раздел «Сайты», который отображается в левом столбце, и выберите « Добавить FTP сайт ».

На следующем этапе мы можем настроить IP-адреса что мы хотим разрешить подключаться к нему, а также разрешить использование SSL.

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

Нажимаем на “Финиш” и это все. Мы уже создали наш FTP-сайт. Как мы видим, появятся все каталоги, к которым у пользователей будет доступ. В любое время, если мы захотим, мы сможем легко изменить конфигурацию сервера. Например, мы можем добавить новые каталоги или просмотреть разрешения, чтобы настроить их в соответствии с нашими потребностями, не отвлекаясь от безопасности.

Подключиться к серверу без программ

Мы уже видели, как можно смонтировать собственный FTP-сервер в Windows 10 без программ, используя только расширенные инструменты операционной системы. Однако как мы можем подключиться к другим серверам без использования FTP-клиента?

У Windows есть собственный клиент для этого протокола в самом файловом проводнике. Поэтому мы можем подключаться к этим типам серверов так же, как и подключиться к общему диску в сети через протокол Microsoft SMB. Нам просто нужно указать, что это FTP-сервер, и указать IP-адрес и данные пользователя, чтобы это устройство было установлено в браузере как еще одна общая папка.

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

Намного более быстрый и интересный способ, особенно для тех, кто обычно периодически подключается к серверам.

Подключение к FTP-серверу

Подключиться к серверу вы можете несколькими вариантами, через стандартную программу Windows Проводник, или к примеру через программу FileZilla.

Мы выберем вариант с подключением через Проводник. Введите в адресной строке:

ftp://ip-адрес

Пример: ftp://156.237.14.55

В открывшемся окне укажите данные для подключения которые вы так же можете найти в персональной панели управления.

Стоит отметить, что веб-сервер IIS дает возможность гибко настраивать подключение — есть возможность разделять видимость для разных пользователей, настраивать права доступа и использовать анонимность.

После проделанных действия вы увидите содержание папки сервера:

FTP-сервер обладает широким спектром возможностей:

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

Настройка FTP сайта в Windows Server, предоставление прав пользователям

Запустите Server Manager и откройте консоль управления IIS (Internet Information Service Manager).

Создайте новый FTP сайт (Sites ->Add FTP Site).

Имя FTP сайта: MyTestSite

Корневой каталог FTP сайта: C:inetpubftproot

Для защиты передаваемых по сети ftp-данных возможно настроить SSL (в этом случае все передаваемые по сети данные и пароли/учетки ftp-пользователей будут зашифрованы), но в нашей демонстрации это не обязательно. Все остальные настройки оставляем стандартными.

Import-Module WebAdministration#Задаем имя FTP сайта$FTPSiteName = ‘New FTP Site’#Каталог FTP сайта$FTPRoot = ‘E:wwwFTPRoot’#порт FTP сайта$FTPPort = 21New-WebFtpSite -Name $FTPSiteName -PhysicalPath $FTPRoot -Port $FTPPort

Выберите новый FTP сайт и в секции FTP Authentication (Аутентификация) отключите анонимную аутентификацию Anonymous Authentication. Basic Authentication должна быть включена.

FTP служба на Windows Server 2016 / 2012 R2 может использовать два типа учетных записей: доменные или локальные. В зависимости от типа учетной записи есть различия в структуре каталогов FTP и настройках изоляции пользователей. Мы будем использовать локальные учетные записи Windows.

Создайте FTP пользователей, допустим, это будут учетные записи ftp_user1, ftp_user2 и ftp_user3. Также создайте группу ftp_users, в которую включим этих пользователей. Создать пользователей можно в разделе Local Users and Groups консоли Computer Management.

Также можно создать пользователей и группы из командной строки (или с помощью PowerShell). Создайте локальную группу: net localgroup ftp_users /add

Создайте нового локального пользователя:

net user ftp_user1 /add *

Добавьте пользователя в группу:

net localgroup ftp_users ftp_user1 /add

Точно так же создайте еще двух пользователей.

Предоставьте созданной группе ftp_users права (RW) на каталог C:inetpubftproot.

Внутри каталога C:inetpubftproot создадйте каталог с именем LocalUser (имя должно полностью соответствовать, это важно. )

Затем внутри C:inetpubftprootLocalUser создайте три каталога с именами созданных вами пользователей: ftp_user1, ftp_user2, ftp_user3.

Тип учетной записи Синтаксис именования домашних каталогов
Анонимные пользователи %FtpRoot%LocalUserPublic
Локальная учетная запись Windows %FtpRoot%LocalUser%UserName%
Доменная учетная запись Windows %FtpRoot%%UserDomain%%UserName%
Специальные учетки IIS Manager или ASP.NET %FtpRoot%LocalUser%UserName%

Вернитесь в консоль IIS и в разделе сайта FTP Authorization Rules создайте новое правило (Add Allow Rule), в котором укажите, что группа ftp_users должна иметь права на чтение и запись (разрешения Read и Write).

Особенности и как работает FTP сервер

Протокол передачи файлов работает на
прикладном уровне стека протоколов TCP/IP-протокол. Таким образом, он находится на том же уровне, что и HTTP или POP. Данные системы характеризуются тем фактом,
что они работают вместе с такими программами, как браузеры или почтовые
клиенты, чтобы выполнять свое предназначение. Существуют также
специализированные программы FTP для протокола передачи
файлов.

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

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

При FTP-соединении
открываются два канала. Сначала клиент и сервер настраивают канал управления
через порт 21. Клиент использует его для отправки команд на сервер, который
возвращает коды состояния. Затем оба участника связи могут настроить канал
данных для взаимного обмена

Выбранные файлы затем переносятся куда нужно.
Между тем журнал обращает внимание на ошибки. Если соединение прерывается во
время передачи, передача может быть возобновлена ​​после восстановления
контакта

Различают активный и пассивный FTP: в активном варианте клиент устанавливает соединение, как описано, через
порт 21 и, таким образом, сообщает серверу, какой порт на стороне клиента может
использовать сервер для передачи своих ответов. Однако, если клиент защищен
брандмауэром, сервер не может отправлять какие-либо ответы, потому что все
внешние подключения заблокированы. Для этого был разработан пассивный режим.
Сервер объявляет порт, через который клиент может настроить канал данных.
Поскольку клиент инициирует соединение с помощью этого метода, брандмауэр не
блокирует передачу.

Настройка windows server 2019 с нуля

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

Что вы должны сделать перед сдачей сервера заказчикам:

  1. Во первых вы должны выделить статическийIP-адрес для него, я знаю, что в интернете ходит много споров, нужен ли он серверу или нет, так как все можно реализовать на DCHP-сервере, с помощью все той же резервации, и что легко потом управлять ими, например через IPAM, может быть это и так, но я привык по старинке, надежным топорным методом, со статикой на сервере
  2. Во вторых вы должны корректно присвоить ему имя, которое соответствует вашей политике именования серверов, это как в случае с называнием домена Active Directory. Данное имя будет фигурировать в зонах DNS-сервера.
  3. Произвести установку последних обновлений Windows Server 2019. Не для кого не секрет, что ОС от редмондского гиганта, в плане защищенности и всевозможных глюков, которые называют фичами очень богата, так, что я вам настоятельно рекомендую периодически устанавливать свежие апдейты.
  4. Отключить не нужные службы
  5. Присоединить к домену Active Directorry
  6. Установить необходимые роли или компоненты.

Установка 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 Мб).

  1. Распаковываем содержимое архива в целевой каталог, к примеру: C:OpenSSH-Win
  2. Запускаем командную строку PowerShell с правами администратора и переходим в каталог OpenSSH: Cd C:OpenSSH-Win
  3. Добавьте путь к каталогу OpenSSH в переменную окружения Path;
  4. Установите сервер OpenSSH: .install-sshd.ps1 (должно появиться зеленое сообщение “sshd and ssh-agent services successfully installed”);
  5. Сгенерируйте SSH ключи для сервера (нужны для запуска службы sshd): ssh-keygen.exe –A

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

Настройка FTP-сервера в IIS

IIS (Internet Information Services) — набор серверов для нескольких служб Интернета от Майкрософт. Поддерживает протоколы HTTP, HTTPS, FTP, POP3, SMTP, NNTP.

На днях начал изучать сие достижение человеческого разума, поэтому здесь буду писать теперь ещё и о своих скромных достижениях в этой области. Это моя первая статья на эту тему, посвящённая настройке FTP.

IIS 7.5 входит в Windows 7 и Windows Server 2008 R2.

Я буду экспериментировать на Windows 7.

Для того, что запустить IIS достаточно включить компоненту в панели управления (Панель управления –> Программы и компоненты –> Включение или отключение компонентов Windows):

Включение или отключение компонентов Windows

Для того, чтобы убедиться в том, что IIS работает можно в браузере перейти на домашнюю страницу сайта: (http://127.0.0.1/ или http://localhost/):

Домашняя страница IIS

Дальнейшие действия будут выполняться через оснастку Диспетчер служб IIS.

Так как сегодня мы будем работать с FTP, то нам нужно добавить FTP-сайт:

Добавление FTP-сайта

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

Сведения о сайте

Далее нужно указать на каком интерфейсе будет работать сайт, по какому порту. Здесь же задаются параметры SSL (я на своём тестовом сервере не использую, но в реальных условиях этого лучше не делать). Также можно указать будет-ли сайт запускаться автоматически, или же его нужно запускать вручную:

Параметры привязки и SSL

На следующем шаге задаются параметры авторизации:

Сведения о проверке подлинности и авторизации

Т.е. к моему FTP все имеют доступ на чтение.

На этом настройка FTP-сервера завершена. Теперь при подключении к нему по протоколу FTP пользователи будут видеть файлы из указанного в настройках каталога, и в соответствии с настройками авторизации смогут их только копировать, но не удалять, или создавать новые.

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

Для того, чтобы разрешить определённым пользователям записывать (и удалять) файлы нужно включить обычную проверку подлинности (на начальной странице FTP), и в правилах авторизации FTP добавить разрешающее правило для определённого пользователя (или группы пользователей) с правом на запись:

Изменить разрешающее правило авторизации

Пользователь ftp_user был создан заранее, как обычный пользователь компьютера.

Теперь при анонимном подключении можно скачивать файлы, а пользователю ftp_user можно будет читать, создавать и удалять.

Настройка FTP-сервера

После установки программного обеспечения необходимо добавить FTP-сайт. Откройте диспетчер служб IIS (его можно выбрать из меню Средства Диспетчера серверов).

Найдите раздел сайты, щелкните на нем правой кнопкой мыши и выберите команду Добавить FTP-сайт(рис. 6).

Рис. 6. Добавление FTP-сайта

Введите название и путь к каталогу сайта (рис. 7).

Рис. 7. Задаем путь к корневому каталогу FTP-сервера

Далее выберите из списка IP-адрес, который будет использован FTP-сервером, выберите порт FTP-сервера (можно выбрать нестандартный), включите параметр Запускать сайт FTP автоматически и выберите опцию Без SSL дабы упростить настройку.

Рис. 8. Параметры FTP-сервера

  • Все пользователи — все зарегистрированные пользователи.
  • Анонимные пользователи — только анонимные пользователи.
  • Указанные роли или группы пользователей — только указанные роли/группы пользователей.
  • Указанные пользователи — можно будет указать, каким именно пользователям разрешен вход на FTP-сервер.

Рис. 9. Параметры проверки подлинности

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

Рис. 10. Подключение к FTP-серверу прошло успешно

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

Добавить сетевое расположение

Если вы хотите добавить сетевое расположение, щелкните правой кнопкой мыши на «Мой компьютер» (см. Первое изображение) и выберите Добавить сетевое расположение . В поле «Map FTP Drive» вы также можете выбрать ссылку внизу с надписью Подключиться к веб-сайту, который можно использовать для хранения ваших документов и изображений . Откроется мастер добавления сетевого расположения. Нажмите Далее, а затем выберите пользовательское сетевое расположение. Нажмите Далее еще раз. Теперь укажите Интернет или сетевой адрес или браузер для местоположения. Нажмите кнопку “Далее.

Снимите флажок Войти анонимно и введите имя пользователя и пароль. Нажмите на Далее. При появлении запроса дайте имя сетевому расположению. Нажмите Далее еще раз. Теперь выберите Открыть эту сетевую папку, когда я нажму кнопку Готово .

Вам будет предложено ввести свои учетные данные, и как только вы это сделаете, вы будете подключены к сетевому диску, FTP-диску или веб-сайту.

Это очень полезно, если вам нужно соединить свои компьютеры вместе для обмена файлами, хранить файлы в Интернете или запустить веб-сайт.

Подключите сетевой диск с помощью командной строки

Чтобы отобразить сетевые диски с помощью командной строки, в командной строке с повышенными привилегиями необходимо выполнить следующую команду:

net use x: \ server share/persistent: yes

Здесь x – буква диска, а параметр/persistent: yes делает его постоянным.

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

Подключите сетевой диск с помощью PowerShell

Чтобы отобразить сетевые диски с помощью Powershell, необходимо выполнить следующую команду:

New-PSDrive -Name x -PSProvider FileSystem -Root \ server share -Persist

Вы можете прочитать больше о New-PSDrive , который помогает вам создавать подключенные сетевые диски на MSDN.

ПРИМЕЧАНИЕ:

  1. Папки, которые вы отображаете, должны быть установлены на ОБЩЕЕ, прежде чем вы сможете получить к ним доступ через буквы дисков
  2. Если вы пытаетесь получить доступ к диску с другого компьютера, он должен быть включен и запущен; даже если компьютер спит, вы не можете получить доступ к этому диску
  3. Вы должны знать учетные данные папки, компьютера или веб-сайта, который вы пытаетесь сопоставить или подключить как сетевой диск
  4. Загрузите инструмент FTP Drive с KillProg.com. Это делает несколько вещей, включая добавление буквы диска проще
  5. Вы также можете попробовать FtpUse, бесплатный инструмент, который поможет вам сопоставить FTP-сервер с локальным диском.
  6. Используйте Network Drive Control, чтобы Windows автоматически отображала сетевые диски по имени сети при входе в систему.
  7. Visual Subst – это бесплатный инструмент, который позволяет легко создавать виртуальные диски для ваших папок и отображать облачное хранилище как виртуальные диски.

Также смотрите :

  1. Как подключить OneDrive к сетевому диску
  2. Сопоставление OneDrive для бизнеса как сетевого диска
  3. Доступ к FTP-серверу с помощью командной строки Windows
  4. Как получить доступ к FTP-серверу с помощью Notepad ++.

Если вы хотите, вы также можете загрузить и использовать один из этих бесплатных FTP-клиентов для своего ПК с Windows. Настройка и использование SIP-сервера в Windows может также заинтересовать некоторых из вас.

Портирован из WVC и обновлен

Настройка правил брандмауэра Windows для доступа к FTP серверу

При установке роли FTP сервера в настройках Windows Firewall автоматически активируются все необходимые правила, которые нужна для доступа пользователей к FTP.

Для корректной работы FTP севера в пассивном режиме FTP пользователям нужно подключаться к RPC диапазону портов (1025-65535). Чтобы не открывать все эти порты на внешнем файерволе, вы можете ограничить диапазон динамических TCP портов, используемых для передачи данных.

</ul></ul>

  1. Для этого в настройках FTP сайта в IIS откройте пункт FTP Firewall Support и в поле Data Channel Port Range укажите диапазон портов, который вы хотите использоваться для FTP подключений. Например – 50000-50100;
  2. Сохраните изменения и перезапустите IIS (iisreset);
  3. Откройте панель управления и перейдите в Control PanelSystem and SecurityWindows FirewallAllowed apps;
  4. Убедитесь, что в списке приложении, которым разрешен доступ через брандмауэр присутствуют разрешения для FTP Server.

Затем в настройках Windows Firewall with Advanced Security проверьте, что включены следующие правила:

  • FTP Server (FTP Traffic-In) – протокол TCP, порт 21;
  • FTP Server Passive (FTP Passive Traffic-In) – адрес локального порта 1024-65535 (либо 50000-50100 как в нашем примере);
  • FTP Server Secure (FTP SSL Traffic-In) – (при использовании FTP с SSL) порт 990;
  • FTP Server (FTP Traffic-Out) – порт 20;
  • FTP Server Secure (FTP SSL Traffic-Out) – (при использовании FTP с SSL) порт 989.

Соответственно эти порты нужно открыть на шлюзе (межсетевом экране) для подключения внешних FTP пользователей.

Процесс установки

Для начала нужно зайти в «Пуск» и войти в «Диспетчер серверов», в нем необходимо выбрать добавление роли (пункт два).

Затем зайти на вкладку «Тип установки» и кликнуть на первую категорию.

В рамке с пулами появится список серверов, надо кликнуть по нужному и щелкнуть «Далее».

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

Внимание: иные версии перенесли строку «FTP-сервер» на другие вкладки

Затем потребуется нажать и одобрить установку.

Раскройте диспетчер IIS и слева в подменю есть папка «Сайты». Если кликнуть по ней правой кнопкой мышки, всплывет подсказка. В ней следует щелкнуть на «Добавить FTP».

Следующий шаг: потребуется ввести имя нужного сайта и его полный путь к каталогу хранения.

В окне появится запрос на выбор айпи-адреса. Нужно проверить, чтобы введенный айпишник был одинаковым с тем, что значится в панели управления. Желательно выбрать еще функцию автоматического запуска, расположенной ниже, и в ней «Без SSL».

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

Подключиться к FTP-серверу сайта с помощью Проводника Windows 10

Чтобы подключиться к вашему хостингу, серверу по FTP, нужно создать FTP клиент. Создавать и настраивать мы его будет без сторонних программ, с помощью проводника windows. Функция известна еще со времен windows xp, но было все сложновато и непонятно, и каждый раз с новым выходом windows она совершенствовалась и становилась стабильной, что вполне заменит сторонние ftp клиенты для передачи данных на сервер. Тем не менее это означает что данным методом вы сможете настроить ftp клиент для любой версии виндовс: windows xp, 7, 8.1, 10.

А) Если вы хотите подключиться к FTP серверу веб сайта на хостинге, то вы должны настроить FTP сервер на вашем хостинге сайте, к примеру Cpanel, задав там имя и пароль.

Б) Если вы подключаетесь к другому устройству в своей локальной сети, вы можете использовать частный внутренний IP-адрес. (Если нужно указать порт, то он ставится после IP-адреса с двоеточием, к примеру 192.168.1.1:9090).

Вам придется выбрать, как настраивать вход к вашему веб-сайту на хостинг сервере. Все ровно в двух случаях настройки делаются на вашем хостинге, где веб-сайт к которому хотите получить доступ. Анонимный вход—при входе сетевой ftp папки в проводнике у вас запросит имя и пароль. Вход с пользователем—зайдет сразу при открытии вашей сетевой ftp папки в проводнике.

Теперь вам нужно указать любое имя. Это может быть ваше доменное имя, IP-адрес сервера, имя сайта или другое.

Источник

FTP серверы могут быть использованы

FTP серверы могут быть использованы

  • Для обмена личными данными между какой-либо группой людей (домашние серверы с фотографиями).
  • Для администрирования коммерческих ресурсов (заливка файловой системы сайта на хостинг).

Если объемы данных невелики и нет необходимости осуществлять непрерывный доступ к ним, аренда FTP сервера является нецелесообразной. В случае работы коммерческого ресурса, сервер должен удовлетворять таким требованиям:

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

Аренда FTP сервера в данном случае – наиболее подходящий вариант, потому что за его работой т постоянно наблюдает команда опытных специалистов. Выбирая FTP хостинг от RigWEB, вы получаете:

  • Высокоскоростной канал для соединения с FTP сервером.
  • Стабильность и надежность работы.
  • Объем дискового пространства Вы определяете, исходя из собственных потребностей.
  • Опытные специалисты в службе поддержки.
  • Оперативное устранение возникающих неполадок.
  • Логин – имя аккаунта или логин, используемый для входа в панель управления хостингом.
  • Адрес сервера – ftp.<Доменное имя ресурса>. Если домен еще не зарегистрирован, то в качестве адреса можно использовать IP адрес ресурса (его можно узнать в меню «аккаунт» панели управления).

В случае если присутствует насущная необходимость в создании нескольких FTP аккаунтов помимо базового – обращайтесь в службу поддержки RigWEB. Здесь Вам помогут подобрать наиболее оптимальный тариф, предусматривающий создание дополнительных FTP аккаунтов.

Рекомендую к прочтению :

Как настроить tftp сервер на Windows

Как удалить запомненные ftp пароли Windows

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

Данный протокол можно использовать практически на любом компьютере на базе Windows или Mac OS. К тому же любой хостинг провайдер предоставляет возможность подключиться при помощи данного способа подключения.

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

Установим Веб-сервер IIS

Запускаем Диспетчер серверов из меню Пуск или кликом по значку на панели задач.

Выбираем пункт Добавить роли и компоненты.

В новом окне выбираем, слева, Тип установки, затем Установка ролей или компонентов, кликаем по кнопке Далее.

Из предложенного пула серверов выбираем необходимый. В нашем случае он один, кликаем Далее.

В списке ролей находим Веб-сервер (IIS) и ставим галочку напротив этого пункта.

В новом окне Мастер добавления ролей и компонентов просто кликаем по Добавить компоненты. Данное окно обычно появляется при первой установке Веб-сервера (IIS). Кликаем Далее.

Слева кликаем по Служба ролей (подпункт Роль Веб-сервера (IIS)). Ставим галку напротив FTP-сервер. При необходимости устанавливаем галку напротив Расширяемость FTP. Кликаем Далее.

Проверяем компоненты для установки. При первой установке, рекомендуем установить галку в поле Автоматический перезапуск конечного сервера, если потребуется. Кликаем Установить

Важно! При первой установке Веб-сервера (IIS) будут установлены дополнительные компоненты службы

Ожидаем завершения процесса установки. По окончании кликаем Закрыть.

Создание FTP сервера средствами Windows 7, 8.1, 10

Если вы обращаетесь к подобного рода статьям, то лишний раз напоминать о сути и назначении подобных серверов, скорее всего, не имеет смысла, но для проформы стоит уточнить, что File Transfer Protocol по умолчанию использует порт 21 и может быть использован для просмотра как интернет браузером так и большинством файловых менеджеров в число которых входит и Windows Explorer.

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

Начнём с того что убедимся в том, что наша операционная систем вообще умеет выполнять такую работу. Для этого просто смотрим на название сборки и всё что выше Home версии считаем пригодным для наших нужд.

Находим на панели управления пункт «программы и компоненты» а в нём переходим на пункт «Включение или отключение компонентов Windows”

Открывшееся меню предложит нам список компонентов из которых мы должны найти и включить «службы IIS » и все её подслужбы. Нужно чтобы получилось так:

Нажимаем кнопку ОК и ждём когда Windows завершит установку.

Теперь нам нужно непосредственно запустить наш сервер. Во всё той же панели управления находим пункт «Администрирование», а в нём «диспетчер служб IIS »

В открывшемся окне в левой колонке открываем дерево до вкладки «Сайты» и жмём по этой вкладке правой клавишей. Выбираем «Добавить FTP-сайт»

После чего задаём имя сайта и каталог к которому физически будет обращаться протокол ftp

Далее определяются параметры запуска сервера и для упрощения доступа стоит указать запуск без SSL. Запускать ли его при запуске системы и привязывать ли его к конкретному адресу остаётся на ваше усмотрение.

На следующей странице ставим галочку напротив «Анонимный» и «Обычная» и жмём готово.

На данный момент FTP — сервер готов, но, для того чтобы мы могли им воспользоваться, продолжим настройку.

Теперь настроим брандмауер Windows

«Панель управления» → «Брандмауэр Windows»

Здесь переходим в дополнительные параметры.

Затем нужно включить 2 правила для входящих подключений

FTP-сервер (входящий трафик)

Трафик FTP-сервера в пассивном режиме (входящий трафик FTP в пассивном режиме).

Первичная настройка FTP FileZilla Server

После установки, при первом запуске интерфейса, появится маленькое окошко, где требуется указать адрес и порт для подключения, а так же пароль администратора (при первой установки его нет). Можно отметить опцию “Всё время подключаться к этому серверу” (Always connect to this server). Нажимаем “Ok“.

Хочется отметить, что это и есть подключение к серверу локально, а именно, подключение к интерфейсу администрирования, т.е выдавать адрес 127.0.0.1 и порт 14147 для друга, который захочет подключиться – бесполезно. О внешних адресах, паролях и явках, необходимых для подключения к серверу, будет написано по ходу статьи.

Теперь перейдем к настройкам. Это делается путем перехода по адресу “Edit -> Settings” или кликом на кнопку на панели интерфейса:

Перед вами откроется окно настроек. На первой вкладке (General Settings) можно задать следующие параметры (смотрим рисунок ниже):

Сверху вниз по скриншоту:

  • Порт, по которому клиенты смогут подключаться к серверу
  • Максимальное количество клиентов
  • Количество потоков
  • Различные таймауты (три штуки в самом низу)

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

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

Надеюсь, с этими настройками вы разберетесь без проблем!

Идем дальше.

Настройка FTP сайта в Windows Server, предоставление прав пользователям

Запустите Server Manager и откройте консоль управления IIS (Internet rmation Service Manager).

Создайте новый FTP сайт (Sites ->Add FTP Site).

Имя FTP сайта: MyTestSite

Корневой каталог FTP сайта: C:inetpubftproot

Для защиты передаваемых по сети ftp-данных возможно настроить SSL (в этом случае все передаваемые по сети данные и пароли/учетки ftp-пользователей будут зашифрованы), но в нашей демонстрации это не обязательно. Все остальные настройки оставляем стандартными.

Вы можете управлять FTP сайтом с помощью модуля PowerShell WebAdministration. Напримерм, чтобы создать новый FTP сайт достаточно выполнить команды:

Import-Module WebAdministration

#Задаем имя FTP сайта

$FTPSiteName = ‘New FTP Site’

#Каталог FTP сайта

$FTPRoot = ‘E:wwwFTPRoot’

#порт FTP сайта

$FTPPort = 21

New-WebFtpSite -Name $FTPSiteName -PhysicalPath $FTPRoot -Port $FTPPort

Выберите новый FTP сайт и в секции FTP Authentication (Аутентификация) отключите анонимную аутентификацию Anonymous Authentication. Basic Authentication должна быть включена.

FTP служба на Windows Server 2016 / 2012 R2 может использовать два типа учетных записей: доменные или локальные. В зависимости от типа учетной записи есть различия в структуре каталогов FTP и настройках изоляции пользователей. Мы будем использовать локальные учетные записи Windows.

Создайте FTP пользователей, допустим, это будут учетные записи ftp_user1, ftp_user2 и ftp_user3. Также создайте группу ftp_users, в которую включим этих пользователей. Создать пользователей можно в разделе Local Users and Groups консоли Computer Management.

Также можно создать пользователей и группы из командной строки (или с помощью PowerShell). Создайте локальную группу:

net localgroup ftp_users /add

Создайте нового локального пользователя:

net user ftp_user1 /add *

Добавьте пользователя в группу:

net localgroup ftp_users ftp_user1 /add

Точно так же создайте еще двух пользователей.

Предоставьте созданной группе ftp_users права (RW) на каталог C:inetpubftproot.

Внутри каталога C:inetpubftproot создадйте каталог с именем LocalUser (имя должно полностью соответствовать, это важно!!!). Затем внутри C:inetpubftprootLocalUser создайте три каталога с именами созданных вами пользователей: ftp_user1, ftp_user2, ftp_user3

Примечание. В зависимости от типа учетных записей необходимо создать следующую структуру каталогов (под %FtpRoot% подразумевается корень сайта FTP, в нашем случае это C:inetpubftproot):

Тип учетной записи Синтаксис именования домашних каталогов
Анонимные пользователи %FtpRoot%LocalUserPublic
Локальная учетная запись Windows %FtpRoot%LocalUser%UserName%
Доменная учетная запись Windows %FtpRoot%%UserDomain%%UserName%
Специальные учетки IIS Manager или ASP.NET %FtpRoot%LocalUser%UserName%

Вернитесь в консоль IIS и в разделе сайта FTP ization Rules создайте новое правило (Add Allow Rule), в котором укажите, что группа ftp_users должна иметь права на чтение и запись (разрешения Read и Write).

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

Понравилась статья? Поделить с друзьями:
  • Настройка nic teaming в windows server 2019
  • Настройка rambler почты на windows 10
  • Настройка nfs сервера на windows server 2016
  • Настройка raid 1 windows server 2019
  • Настройка nfs сервера на windows 2008