Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этой статье описывается конфигурация windows для сервера OpenSSH (sshd).
OpenSSH содержит подробную документацию по параметрам конфигурации в интернете по OpenSSH.com, которая не дублируется в этом наборе документации.
Файлы конфигурации OpenSSH
OpenSSH содержит файлы конфигурации для параметров сервера и клиента. OpenSSH является открытым исходным кодом и был добавлен в операционные системы Windows Server и Windows Client, начиная с Windows Server 2019 и Windows 10 (сборка 1809). В результате документация с открытым кодом для файлов конфигурации OpenSSH не повторяется здесь. Файлы конфигурации клиента можно найти на странице руководства по ssh_config, а файлы конфигурации сервера OpenSSH — на странице руководства по sshd_config.
SSH-сервер (sshd) по умолчанию считывает данные конфигурации из %programdata%\ssh\sshd_config, либо другой файл конфигурации может быть указан при запуске sshd.exe
с параметром -f
. Если файл отсутствует, sshd создает один с конфигурацией по умолчанию при запуске службы.
В Windows клиент OpenSSH считывает данные конфигурации из файла конфигурации в следующем порядке:
- При запуске
ssh.exe
с параметром-F
укажите путь к файлу конфигурации и укажите имя записи из этого файла. - Файл конфигурации пользователя в %userprofile%\.ssh\config.
- Файл конфигурации на уровне системы в %programdata%\ssh\ssh_config.
Настройка оболочки по умолчанию для OpenSSH в Windows
Командная оболочка по умолчанию предоставляет пользователю возможность подключения к серверу с помощью SSH. Начальная версия Windows по умолчанию — это командная оболочка Windows (cmd.exe). Windows также включает PowerShell и сторонние командные оболочки также доступны для Windows и могут быть настроены в качестве оболочки по умолчанию для сервера.
Чтобы задать командную оболочку по умолчанию, сначала убедитесь, что папка установки OpenSSH находится на системном пути. Для Windows папка установки по умолчанию %systemdrive%\Windows\System32\opensh. Следующая команда показывает текущий параметр пути и добавляет в нее папку установки OpenSSH по умолчанию.
Командная оболочка | Команда для использования |
---|---|
командование | path |
PowerShell | $env:path |
Настройка оболочки SSH по умолчанию выполняется в реестре Windows, добавив полный путь к исполняемому файлу HKEY_LOCAL_MACHINE\SOFTWARE\OpenSSH
оболочки в строковое значение DefaultShell
.
Например, следующая команда PowerShell с повышенными привилегиями устанавливает оболочку powershell.exe
по умолчанию для сервера OpenSSH (этот путь не применяется к клиенту OpenSSH).
New-ItemProperty -Path "HKLM:\SOFTWARE\OpenSSH" -Name DefaultShell -Value "C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe" -PropertyType String -Force
Конфигурации Windows в sshd_config
В Windows sshd считывает данные конфигурации из %programdata%\ssh\sshd_config по умолчанию или другой файл конфигурации может быть указан путем запуска sshd.exe
с параметром -f
.
Если файл отсутствует, sshd создает один с конфигурацией по умолчанию при запуске службы.
Следующие элементы предоставляют конфигурацию, специфичную для Windows, с помощью записей в sshd_config. Существуют и другие параметры конфигурации, которые не перечислены здесь, так как они подробно описаны в документации по Win32 OpenSSH в Интернете.
Подсказка
Сервер OpenSSH (sshd) считывает файл конфигурации при запуске службы. Любые изменения в файле конфигурации требуют перезапуска службы.
РазрешитьГруппы, РазрешитьПользователи, ЗапретитьГруппы, ЗапретитьПользователи
Управление подключением пользователей и групп к серверу осуществляется с помощью директив AllowGroups, AllowUsers, DenyGroups и DenyUsers . Директивы allow/deny обрабатываются в следующем порядке: DenyUsers, AllowUsers, DenyGroups и, наконец, AllowGroups. Все имена учетных записей должны быть указаны в нижнем регистре. Дополнительные сведения о ШАБЛОНАх и масках в ssh_config см. в руководстве OpenBSD к файлу sshd_config.
При настройке правил, основанных на пользователях или группах, с использованием учетной записи домена или группы, используйте следующий формат: user?domain*
.
Windows разрешает несколько форматов для указания субъектов домена, но может конфликтовить со стандартными шаблонами Linux.
По этой причине *
добавляется для покрытия полных доменных имен.
Кроме того, этот подход использует ?
вместо @
того, чтобы избежать конфликтов с форматом username@host.
Пользователи и группы рабочей группы, а также учетные записи, подключенные к интернету, всегда разрешаются в название локального аккаунта (без доменной части, аналогично стандартным именам Unix). Пользователи и группы домена строго определяются в формате NameSamCompatible: domain_short_name\user_name. Все правила конфигурации на основе группы пользователей должны соответствовать этому формату.
Следующий пример запрещает contoso\admin на узле 192.168.2.23 и блокирует всех пользователей из домена contoso. Он также позволяет пользователям, которые являются членами групп contoso\sshusers и contoso\serveroperators.
DenyUsers contoso\admin@192.168.2.23
DenyUsers contoso\*
AllowGroups contoso\sshusers contoso\serveroperators
В следующем примере пользователю localusers разрешено выполнять вход с узла 192.168.2.23 и членам группы sshusers также разрешается это делать.
AllowUsers localuser@192.168.2.23
AllowGroups sshusers
Методы аутентификации
Для Windows OpenSSH доступны только методы проверки подлинности password
и publickey
.
Это важно
Проверка подлинности с помощью учетной записи Microsoft Entra в настоящее время не поддерживается.
AuthorizedKeysFile
Значение по умолчанию — .ssh/authorized_keys
. Если путь не является абсолютным, он принимается относительно домашнего каталога пользователя (или пути к изображению профиля), например C:\Users\username. Если пользователь принадлежит группе администраторов, вместо этого используется %programdata%/ssh/administrators_authorized_keys .
Подсказка
Файл administrators_authorized_keys должен содержать только записи разрешений для учетной записи NT Authority\SYSTEM и ГРУППЫ безопасности BUILTIN\Administrators. Учетная запись NT Authority\SYSTEM должна получить полные права. Группа безопасности BUILDIN\Administrators необходима для администраторов для управления авторизованными ключами, вы можете выбрать необходимый доступ. Чтобы предоставить разрешения, можно открыть запрос PowerShell с повышенными привилегиями и выполнить команду icacls.exe "C:\ProgramData\ssh\administrators_authorized_keys" /inheritance:r /grant "Administrators:F" /grant "SYSTEM:F"
.
ChrootDirectory (поддержка добавлена в версии 7.7.0.0.
Эта директива поддерживается только в сеансах sftp. Удаленный сеанс в cmd.exe
не учитывает ChrootDirectory
. Чтобы настроить chroot-сервер исключительно для sftp, установите ForceCommand
на internal-sftp. Вы также можете настроить scp с помощью chroot, реализуя пользовательскую оболочку, которая разрешает только scp и sftp.
GSSAPIAuthentication
Аргумент GSSAPIAuthentication
конфигурации указывает, разрешена ли проверка подлинности пользователя на основе GSSAPI. Значение по умолчанию GSSAPIAuthentication
— нет.
Проверка подлинности GSSAPI также требует использования коммутатора -K
, указывающего имя узла при использовании клиента OpenSSH. Кроме того, можно создать соответствующую запись в конфигурации клиента SSH. В Windows клиент OpenSSH считывает данные конфигурации из %userprofile%.ssh\config по умолчанию.
Пример конфигурации клиента GSSAPI OpenSSH можно увидеть:
# Specify a set of configuration arguments for a host matching the pattern SERVER01.contoso.com
# Patterns are case sensitive
Host SERVER01.contoso.com
# Enables GSSAPI authentication
GSSAPIAuthentication yes
# Forward (delegate) credentials to the server.
GSSAPIDelegateCredentials yes
Это важно
GSSAPI доступен только начиная с Windows Server 2022, Windows 11 и Windows 10 xxxx.
Ключ Хоста
Значения по умолчанию:
#HostKey __PROGRAMDATA__/ssh/ssh_host_rsa_key
#HostKey __PROGRAMDATA__/ssh/ssh_host_dsa_key
#HostKey __PROGRAMDATA__/ssh/ssh_host_ecdsa_key
#HostKey __PROGRAMDATA__/ssh/ssh_host_ed25519_key
Если значения по умолчанию отсутствуют, sshd автоматически создает их при запуске службы.
Матч
Соответствует условиям с помощью одного или нескольких критериев. При совпадении применяются последующие аргументы конфигурации. Совпадения используют правила шаблона, описанные в разделе AllowGroups, AllowUsers, DenyGroups, DenyUsers . Имена пользователей и групп должны быть в нижнем регистре.
PermitRootLogin (разрешить вход root)
Неприменимо в Windows. Чтобы предотвратить вход администраторов, используйте директиву DenyGroups для группы администраторов.
SyslogFacility
Если требуется ведение журнала на основе файлов, используйте LOCAL0. Журналы создаются в%programdata%\ssh\logs. Для любого другого значения, включая значение по умолчанию, AUTH направляет ведение журнала в ETW. Дополнительные сведения см. в разделе "Средства ведения журнала" в Windows.
Аргументы конфигурации
Следующий аргумент конфигурации доступен начиная с Windows Server 2022, Windows 11 и Windows 10 xxxx:
- GSSAPIAuthentication
Следующие аргументы конфигурации недоступны в версии OpenSSH, которая поставляется в Windows Server и клиенте Windows:
- AcceptEnv
- РазрешитьЛокальнуюПереадресациюПотоков
- Команда AuthorizedKeysCommand
- ПользовательКомандыАвторизованныхКлючей
- КомандаAuthorizedPrincipals
- ПользовательКомандыАвторизованныхПринципалов
- ExposeAuthInfo
- GSSAPICleanupCredentials
- GSSAPIStrictAcceptorCheck
- ТипыКлючейПринимаемыхНаОснованииХоста
- Аутентификация на основе хоста
- Хост-на основании-использует-имя-из-пакета-только
- IgnoreRhosts
- ИгнорироватьИзвестныхПользователейХостов
- KbdInteractiveAuthentication
- KerberosAuthentication
- KerberosGetAFSToken
- KerberosOrLocalPasswd
- KerberosTicketCleanup
- PermitTunnel
- РазрешитьПользовательскуюСреду
- РазрешитьПользователюRC
- PidFile
- РаспечататьПоследнийЛог
- PrintMotd
- РДомейн
- StreamLocalBindMask
- StreamLocalBindUnlink
- Строгие режимы
- X11DisplayOffset
- X11Forwarding (переадресация X11)
- X11UseLocalhost
- XAuthLocation