Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этой статье описывается конфигурация windows для сервера OpenSSH (sshd).
OpenSSH содержит подробную документацию по параметрам конфигурации в интернете по OpenSSH.com. Эта документация не дублируется в этом наборе документации.
Файлы конфигурации OpenSSH
OpenSSH содержит файлы конфигурации для параметров сервера и клиента. OpenSSH — это открытый код и был добавлен в клиентские операционные системы Windows Server и Windows, начиная с Windows Server 2019 и Windows 10 (сборка 1809). Здесь не повторяется документация по файлам конфигурации OpenSSH с открытым кодом. Файлы конфигурации клиента можно найти на странице руководства ssh_config. Файлы конфигурации сервера OpenSSH находятся на странице руководства sshd_config.
OpenSSH Server считывает данные конфигурации из %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\openssh
папка установки по умолчанию.
Следующая команда показывает текущий параметр пути и добавляет в нее папку установки OpenSSH по умолчанию.
Командная оболочка | Команда для использования |
---|---|
Command | path |
PowerShell | $env:path |
Вы можете настроить оболочку SSH по умолчанию в реестре Windows, добавив полный путь к исполняемому файлу HKEY_LOCAL_MACHINE\SOFTWARE\OpenSSH
оболочки в строковое значение DefaultShell
.
В следующем примере команда PowerShell с повышенными привилегиями задает оболочку powershell.exe
по умолчанию для сервера OpenSSH. (Установка этого пути не применяется к клиенту OpenSSH.)
$NewItemPropertyParams = @{
Path = "HKLM:\SOFTWARE\OpenSSH"
Name = "DefaultShell"
Value = "C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe"
PropertyType = "String"
Force = $true
}
New-ItemProperty @NewItemPropertyParams
Конфигурации Windows в sshd_config
В Windows sshd считывает данные конфигурации по умолчанию из %programdata%\ssh\sshd_config
. Можно указать другой файл конфигурации, выполнив команду sshd.exe
с параметром -f
.
Если файл отсутствует, sshd создает один с конфигурацией по умолчанию при запуске службы.
В следующих разделах описаны параметры конфигурации windows, которые можно использовать с помощью записей в sshd_config. Существуют другие параметры конфигурации, которые не перечислены здесь. Они подробно описаны в документации по Win32 OpenSSH.
Tip
Сервер OpenSSH (sshd) считывает файл конфигурации при запуске службы. Любые изменения в файле конфигурации требуют перезапуска службы.
РазрешитьГруппы, РазрешитьПользователи, ЗапретитьГруппы, ЗапретитьПользователи
Вы можете контролировать, какие пользователи и группы могут подключаться к серверу с помощью директив AllowGroups
, AllowUsers
, DenyGroups
и DenyUsers
.
Директивы allow и deny обрабатываются в следующем порядке: DenyUsers
, AllowUsers
, DenyGroups
и, наконец AllowGroups
.
Все имена учетных записей должны быть указаны в нижнем регистре.
Для получения дополнительной информации о моделях и символах подстановки в ssh_config см. руководство sshd_config OpenBSD.
При конфигурации правил, основанных на пользователях или группах в домене, используйте следующий формат: user?domain*
.
Windows разрешает несколько форматов для указания субъектов домена, но может конфликтовить со стандартными шаблонами Linux. По этой причине *
используется для обозначения полностью квалифицированных доменных имен (FQDN). Кроме того, этот подход использует ?
вместо @
того, чтобы избежать конфликтов с форматом username@host
.
Пользователи рабочей группы, группы и учетные записи, подключенные к интернету, всегда разрешаются до локального имени учетной записи (без доменной части, аналогично стандартным именам Unix). Пользователи и группы домена строго приводятся к формату NameSamCompatibledomain_short_name\user_name
.
Все правила конфигурации на основе пользователей и групп должны соответствовать этому формату.
В следующем примере запрещается доступ contoso\admin
с узла 192.168.2.23 и блокируются все пользователи из домена Contoso. Он также позволяет пользователям, которые являются членами групп contoso\sshusers
и contoso\serveroperators
.
DenyUsers contoso\[email protected]
DenyUsers contoso\*
AllowGroups contoso\sshusers contoso\serveroperators
В следующем примере пользователь localuser
может войти из узла 192.168.2.23 и разрешить членам группы sshusers
.
AllowUsers [email protected]
AllowGroups sshusers
AuthenticationMethods
Для Windows OpenSSH доступны только методы проверки подлинности password
и publickey
.
Important
Проверка подлинности с помощью учетной записи Microsoft Entra в настоящее время не поддерживается.
AuthorizedKeysFile
Значение по умолчанию — .ssh/authorized_keys
. Если не указать абсолютный путь, OpenSSH ищет файл относительно домашнего каталога, например C:\Users\username
. Если пользователь принадлежит группе администраторов, %programdata%/ssh/administrators_authorized_keys
используется вместо этого.
Tip
Файл administrators_authorized_keys должен иметь только записи разрешений для учетной NT Authority\SYSTEM
записи и BUILTIN\Administrators
группы безопасности. Учетная запись NT Authority\SYSTEM должна получить полные права. Группа BUILTIN\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 (Kerberos). Значение по умолчанию 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
Important
GSSAPI доступен только начиная с Windows Server 2022, Windows 11 и Windows 10 (обновление за май 2021 г.).
HostKey
Значения по умолчанию:
#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 автоматически создает их при запуске службы.
Match
Соответствует условиям с помощью одного или нескольких критериев. При совпадении применяются последующие аргументы конфигурации. Match использует правила шаблона, описанные в разделе AllowGroups, AllowUsers, DenyGroups, DenyUsers . Имена пользователей и групп должны находиться в нижнем регистре.
PermitRootLogin
Неприменимо в Windows. Чтобы предотвратить вход администраторов, используйте администраторы с директивой DenyGroups
.
SyslogFacility
Если требуется ведение журнала на основе файлов, используйте LOCAL0
. Журналы создаются в разделе %programdata%\ssh\logs
. Для любого другого значения, включая значение по умолчанию, AUTH направляет ведение журнала в ETW. Дополнительные сведения см. в разделе "Средства ведения журнала" в Windows.
Аргументы конфигурации
Следующий аргумент конфигурации доступен начиная с Windows Server 2022, Windows 11 и Windows 10 (обновление за май 2021 г.):
GSSAPIAuthentication
Следующие аргументы конфигурации недоступны в версии OpenSSH, которая поставляется в Windows Server и Windows:
AcceptEnv
AllowStreamLocalForwarding
AuthorizedKeysCommand
AuthorizedKeysCommandUser
AuthorizedPrincipalsCommand
AuthorizedPrincipalsCommandUser
ExposeAuthInfo
GSSAPICleanupCredentials
GSSAPIStrictAcceptorCheck
HostbasedAcceptedKeyTypes
HostbasedAuthentication
HostbasedUsesNameFromPacketOnly
IgnoreRhosts
IgnoreUserKnownHosts
KbdInteractiveAuthentication
KerberosAuthentication
KerberosGetAFSToken
KerberosOrLocalPasswd
KerberosTicketCleanup
PermitTunnel
PermitUserEnvironment
PermitUserRC
PidFile
PrintLastLog
PrintMotd
RDomain
StreamLocalBindMask
StreamLocalBindUnlink
StrictModes
X11DisplayOffset
X11Forwarding
X11UseLocalhost
XAuthLocation