Мы ранее уже устанавливали OpenSSH сервер на Windows Server 2012 R2. Тогда мы скачивали пакет с GitHub.
Установка OpenSSH Server в Windows Server 2012 R2
Инструкция не потеряла свою актуальность, но в Windows Server 2019 теперь можно установить OpenSSH Server гораздо проще через Feature on Demand (FoD). Пакет OpenSSH Server включен в Feature on Demand (FoD) современных версий Windows 10 (начиная с 1803), Windows 11 и Windows Server 2022/2019. При этом все основные настройки выполняются автоматически, даже правило в Firewall создаётся и применяется.
Установка OpenSSH в Windows Server 2019
Установим OpenSSH сервер через FoD. Открываем настройки, Apps & features.
Нажимаем Manage optional features.
+ Add a feature.
Находим OpenSSH Server → Install.
Ничего сложного. Если установка не получается, то можно обратить внимание на этот разбор:
Windows — ошибка при установке дополнительных компонентов
Есть альтернативные способы установки, например, через PowerShell:
Get-WindowsCapability -Online | Where-Object Name -like 'OpenSSH.Server*' | Add-WindowsCapability –Online
Или через командную строку и DISM:
dism /Online /Add-Capability /CapabilityName:OpenSSH.Server~~~~0.0.1.0
Можно проверить что пакет установлен через PowerShell:
Get-WindowsCapability -Online | ? Name -like 'OpenSSH.Ser*'
State : Installed.
Запустим службу, можно вручную через GUI:
А можно через PowerShell:
Set-Service -Name sshd -StartupType 'Automatic'
Start-Service sshd
Служба запускается на 22 порту:
netstat -tan | find ":22 "
Как я уже говорил, входящее правило на Firewall для 22 порта при таком способе установки создаётся автоматически.
Настройка доступа
Конфигурационный файл находится здесь: C:\ProgramData\ssh\sshd_config.
Собственно, OpenSSH конфигурируется здесь. Информацию о конфигурации можно почерпнуть здесь:
https://learn.microsoft.com/en-us/windows-server/administration/openssh/openssh_server_configuration
Например, чтобы разрешить доступ по OpenSSH определённой группе пользователей, допишу в конец файла:
DenyUsers *
AllowGroups my_domain\my_group_for_ssh_access
Другой вариант, разрешить доступ определённым пользователям и сразу выполнить для них установку корневой директории через ChrootDirectory.
AllowUsers my_domain\user1 my_domain\user2
Match User my_domain\user1
ChrootDirectory D:\folder_1
Match User my_domain\user2
ChrootDirectory D:\folder_2