Починаючи з Windows 10 1809 і Windows Server 2019 операційній системі є вбудований SSH сервер, заснований на OpenSSH. У цій статті ми покажемо, як встановити та налаштувати OpenSSH сервер в Windows 10 і підключитися до нього віддалено по захищеному SSH протоколу (ну прям як в Linux 🙂).

Установка сервера OpenSSH в Windows

Розглянемо, як встановити компонент OpenSSH Server в Windows 10 1903 (Windows Server 2019 все виконується аналогічно).

Пакет OpenSSH (як і RSAT) вже включений в дані версії Windows у вигляді Feature on Demand (FoD).

При наявності прямого Інтернет-підключення ви можете встановити сервер OpenSSH за допомогою PowerShell

Add-WindowsCapability -Online -Name OpenSSH.Server*

Або за допомогою DISM:

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

У Windows 10 цей компонент також можна встановити через панель Параметри (Додатки -> Управління додатковими компонентами -> Додати компонент). Знайдіть у списку Відкрийте сервер SSH і натисніть кнопку Встановити).

Щоб перевірити, що OpenSSH сервер встановлений, виконайте:
Get-WindowsCapability -Online | ? Name -like 'OpenSSH.Ser*'

State : Installed

перевірити що встановлений OpenSSH сервер в windows 10

Налаштування SSH сервера в Windows

Після статутний сервера OpenSSH в Windows вам потрібно змінити тип запуску служби sshd на автоматичний і запустити службу за допомогою PowerShell:

Set-Service -Name sshd -StartupType 'Automatic'
Start-Service sshd

Start-Service sshd - запустити openssh

За допомогою nestat переконайтеся, що тепер в системі запущено SSH сервер і чекає підключень на 22 порту:

netstat -na| find ":22"

зникнути - порт 22 ssh windows windows - -

Перевірте, що включено правило брандмауера (Windows Defender Firewall), що дозволяє підключення до вашого комп’ютера до Windows по порту TCP / 22.

Get-NetFirewallRule -Name *OpenSSH-Server* |select Name, DisplayName, Description, Enabled

Name DisplayName Description Enabled
---- ----------- ----------- -------
OpenSSH-Server-In-TCP OpenSSH SSH Server (sshd) Inbound rule for OpenSSH SSH Server (sshd) True

правило firewall для доступу до windows через ssh

Якщо правило відключено (стані Enabled = False) або відсутня, ви можете створити нове вхідне правило командою New-NetFirewallRule:

New-NetFirewallRule -Name sshd -DisplayName 'OpenSSH Server (sshd)' -Enabled True -Direction Inbound -Protocol TCP -Action Allow -LocalPort 22

За замовчуванням важливим компоненти OpenSSH зберігаються в наступних каталогах:

  • Виконувані файли OpenSSH Server: C:WindowsSystem32OpenSSH
  • Конфігураційний файл sshd_config (створюється після першого запуску служби): C:ProgramDatassh
  • Журнал OpenSSH: C:windowssystem32OpenSSHlogssshd.log
  • Файл authorized_keys і ключі: %USERPROFILE%.ssh

При установці OpenSSH сервера в системі створюється новий локальний користувач sshd.

Sshd_config: Конфігураційний файл сервера OpenSSH

Ви можете змінити налаштування сервері OpenSSH в конфігураційному файлі% programdata% ssh sshd_config.

Наприклад, щоб заборонити SSH підключення для певного доменного користувача (і всіх користувачів зазначеного домену), додайте в кінці файлі директиви:

DenyUsers winitproadmin@192.168.1.10
DenyUsers corp*

Щоб дозволити підключення тільки для певної доменної групи:

AllowGroups winitprosshadmins

Або можете дозволити доступ для локальної групи:

AllowGroups sshadmins

Можна заборонити вхід під обліковим записом з правами адміністратора, в цьому випадку для виконання привілейованих дій в SSH сесії потрібно робити runas.

DenyGroups Administrators

Наступні директиви дозволяють SSH доступ по ключам (доступ до Windows через SSH по ключам розглянемо докладно в наступній статті) і по паролю:

PubkeyAuthentication yes
PasswordAuthentication yes

Ви можете змінити порт, на якому приймає підключення OpenSSH в файлі конфігурації sshd_config в директиві Port.

sshd - зміна порту ssh 22

Після будь-яких змін в файлі конфігурації sshd_config потрібно перезапускати служби sshd:

restart-service sshd

Підключення до Windows 10 через SSH

Тепер ви можете спробувати підключитися до своєї Windows 10 через SSH клієнт (я використовую putty, але можна користуватися вбудованим ssh клієнтом Windows).

При першому підключенні з’явиться стандартний запит на додавання вузла в список відомих SSH хостів.

putty зберегти ключ

Натискаємо Так, і в відкрилося вікні авторізуемся під користувачем Windows.

ssh сесія в win 10 на базі openssh

При успішному підключенні запускається командна оболонка cmd.exe з рядком-запрошенням.

admin@win10tst C:Usersadmin>

У командному рядку ви можете виконувати різні команди, запускати скрипти і програми.

підключення до windows 10 через ssh

Я вважаю за краще працювати в командному рядку PowerShell. Щоб запустити інтерпретатор PowerShell, виконайте:

powershell.exe

powershell.exe в ssh сесії windows

Щоб змінити Shell за замовчуванням в OpenSSH з cmd.exe на PowerShell, внесіть зміну до реєстру такою командою:

New-ItemProperty -Path "HKLM:SOFTWAREOpenSSH" -Name DefaultShell -Value "C:WindowsSystem32WindowsPowerShellv1.0powershell.exe" -PropertyType String –Force

openssh - змінити shell за замовчуванням на powershell

Залишилося перезапустити SSH підключення і переконатися, що при підключенні використовується командний інтерпретатор PowerShell (про це свідчить запрошення PS C:Usersadmin>).

powershell cli в windows 10 через ssh

У SSH сесії запустилася консоль PowerShell, в якій працюють звичні функції: авто доповнення, розфарбування модулем PSReadLine, історія команд і т.д. Якщо поточний користувач входить в групу локальних адміністраторів, то всі команди в його сесії виконуються з підвищеними правами навіть при включеному UAC.

Leave a Reply

Your email address will not be published. Required fields are marked *