Метка: Windows 11

  • Как изменить редакцию Windows 10/11 без переустановки ОС?

    В этой статье мы покажем, как повысить младшую редакцию (издание) Windows 10 или 11 до более старшей версии без переустановки операционной системы с сохранением всех установленных программ, настроек и документов. Это позволит пользователю обновить редакцию Windows с Home до Pro или Enterprise. (далее…)

  • Файл занят другим процессом Windows, как снять блокировку?

    Иногда при попытке удалить, переименовать или переместить какой-то файл или папку в Windows вы можете получить сообщение, что файл занят/заблокирован/используется другим процессом. Чаще всего имя программы, которая держит файл открытым, указывается прямо в окне сообщения File Explorer. Чтобы снять (далее…)

  • Настройка VLAN интерфейсов в Windows

    В этой статье мы покажем, как настроить тегированный сетевой интерфейс с VLAN в Windows 10/11 и Windows Server 2019 (2022/2016/2012R2). Стандарт VLAN (Virtual LAN) описан в 802.1Q и предполагает маркировку трафика с помощью тегов (vlanid), необходимую для отнесения сетевого пакета к той или иной (далее…)

  • Настройка SSH сервера в Windows

    В современных версиях Windows уже есть встроенный SSH сервер на базе пакета OpenSSH. В этой статье мы покажем, как установить и настроить OpenSSH сервер в Windows 10/11 и Windows Server 2022/2019 и подключиться к нему удаленно по защищенному SSH протоколу (как к Linux).

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

    Пакет OpenSSH Server включен в современные версии Windows 10 (начиная с 1803), Windows 11 и Windows Server 2022/2019 в виде Feature on Demand (FoD). Для установки сервера OpenSSH достаточно выполнить 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

    Если ваш компьютер подключен к интернету, пакет OpenSSH.Server будет скачан и установлен в Windows.

    Также вы можете установить сервер OpenSSH в Windows через современную панель Параметры (Settings -> Apps and features -> Optional features -> Add a feature, Приложения -> Управление дополнительными компонентами -> Добавить компонент. Найдите в списке OpenSSH Server и нажмите кнопку Install).

    На изолированных от интернета компьютерах вы можете установить компонент с ISO образа Features On Demand (доступен в личном кабинете на сайте Microsoft: MSDN или my.visualstudio.com). Скачайте диск, извлеките его содержимое в папку c:FOD (достаточно распаковать извлечь файл OpenSSH-Server-Package~31bf3856ad364e35~amd64~~.cab ), выполните установку из локального репозитория:

    Add-WindowsCapability -Name OpenSSH.Server~~~~0.0.1.0 -Online -Source c:FOD

    Также доступен MSI установщик OpenSSH для Windows в официальном репозитории Microsoft на GitHub (https://github.com/PowerShell/Win32-OpenSSH/releases/). Например, для Windows 10 x64 нужно скачать и установить пакет OpenSSH-Win64-v8.9.1.0.msi. Следующая PowerShell команда скачает MSI файл и установит клиент и сервер OpenSSH:

    Invoke-WebRequest https://github.com/PowerShell/Win32-OpenSSH/releases/download/v8.9.1.0p1-Beta/OpenSSH-Win64-v8.9.1.0.msi -OutFile $HOMEDownloadsOpenSSH-Win64-v8.9.1.0.msi -UseBasicParsing

    msiexec /i c:usersrootdownloadsOpenSSH-Win64-v8.9.1.0.msi

    Также вы можете вручную установить OpenSSH сервер в предыдущих версиях Windows (Windows 8.1, Windows Server 2016/2012R2). Пример установки Win32-OpenSSH есть в статье “Настройка SFTP сервера (SSH FTP) в Windows”.

    Чтобы проверить, что OpenSSH сервер установлен, выполните:

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

    State : Installed

    Настройка SSH сервера в Windows

    После установки сервера OpenSSH в Windows добавляются две службы:

    • ssh-agent (OpenSSH Authentication Agent) – можно использовать для управления закрытыми ключами если вы настроили SSH аутентификацию по ключам;
    • sshd (OpenSSH SSH Server) – собственно сам SSH сервер.

    Вам нужно изменить тип запуска службы sshd на автоматический и запустить службу с помощью PowerShell:

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

    С помощью nestat убедитесь, что теперь в системе запущен SSH сервер и ждет подключений на порту TCP:22 :

    netstat -na| find ":22"

    Проверьте, что включено правило брандмауэра (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

    Если правило отключено (состоянии 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.exe, ssh.exe, ssh-keygen.exe, sftp.exe и т.д.)
    • Конфигурационный файл sshd_config (создается после первого запуска службы): C:ProgramDatassh
    • Файлы authorized_keys и ssh ключи можно хранить в профиле пользователей: %USERPROFILE%.ssh

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

    Настройки сервере OpenSSH хранятся в конфигурационном файле %programdata%sshsshd_config. Это обычный текстовый файл с набором директив. Для редактирования можно использовать любой текстовый редактор (я предпочитаю notepad++). Можно открыть с помощью обычного блокнота:

    start-process notepad C:Programdatasshsshd_config

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

    DenyUsers winitproadmin@192.168.1.10 DenyUsers corp*

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

    AllowGroups winitprosshadmins

    Либо можете разрешить доступ для локальной группы:

    AllowGroups sshadmins

    По умолчанию могут к openssh могут подключаться все пользователи Windows. Директивы обрабатываются в следующем порядке: DenyUsers, AllowUsers, DenyGroups,AllowGroups.

    Можно запретить вход под учетными записями с правами администратора, в этом случае для выполнения привилегированных действий в SSH сессии нужно делать runas.

    DenyGroups Administrators

    Следующие директивы разрешают SSH доступ по ключам (SSH аутентификации в Windows с помощью ключей описана в отдельной статье) и по паролю:

    PubkeyAuthentication yes PasswordAuthentication yes

    Вы можете изменить стандартный SSH порт TCP/22, на котором принимает подключения OpenSSH в конфигурационном файле sshd_config в директиве Port.

    После любых изменений в конфигурационном файле sshd_config нужно перезапускать службу sshd:

    restart-service sshd

    Подключение по SSH к Windows компьютеру

    Теперь вы можете попробовать подключиться к своей Windows 10 через SSH клиент (в этом примере я использую putty).

    Вы можете использовать встроенный SSH клиентом Windows для подключения к удаленному хосту. Для этого нужно в командной строке выполнить команду:

    ssh alexbel@192.168.31.102

    В этом примере alexbel – имя пользователя на удаленном Windows компьютере, и 192.168.31.102 – IP адрес или DNS имя компьютера.

    Обратите внимание что можно использовать следующие форматы имен пользователей Windows при подключении через SSH:

    В домене Active Directory можно использовать Kerberos аутентификацию в SSH. Для этого в sshd_config нужно включить параметр:

    GSSAPIAuthentication yes

    После этого можно прозрачно подключать к SSH сервер с Windows компьютера в домене из сессии доменного подключается. В этом случае пароль пользователя не указывается и выполняется SSO аутентификация через Kerberos:

    ssh -K server1

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

    Нажимаем Да, и в открывшееся окне авторизуемся под пользователем Windows.

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

    admin@win10tst C:Usersadmin>

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

    Я предпочитаю работать в командной строке PowerShell. Чтобы запустить интерпретатор PowerShell, выполните:

    powershell.exe

    Чтобы изменить командную оболочку (Shell) по умолчанию в OpenSSH с cmd.exe на PowerShell, внесите изменение в реестр такой командой:

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

    Осталось перезапустить SSH подключение и убедиться, что при подключении используется командный интерпретатор PowerShell (об этом свидетельствует приглашение PS C:Usersadmin> ).

    В SSH сессии запустилась командная строка PowerShell, в которой работают привычные функции: авто дополнение, раскраска модулем PSReadLine, история команд и т.д. Если текущий пользователь входит в группу локальных администраторов, то все команды в его сессии выполняются с повышенными правами даже при включенном UAC.

    OpenSSH сервер в Windows можно использовать в различных сценариях SSH туннелирования.

    Логи SSH подключений в Windows

    В Windows логи подключений к SSH серверу по-умолчанию пишутся не в текстовые файлы, а в отдельный журнал событий через Event Tracing for Windows (ETW). Откройте консоль Event Viewer ( eventvwr.msc >) и перейдите в раздел Application and services logs -> OpenSSH -> Operational.

    При успешном подключении с помощью к SSH серверу с помощью пароля в журнале появится событие:

    EventID: 4 sshd: Accepted password for root from 192.168.31.53 port 65479 ssh2

    Если была выполнена аутентификация с помощью SSH ключа, событие будет выглядеть так:

    sshd: Accepted publickey for locadm from 192.168.31.53 port 55772 ssh2: ED25519 SHA256:FEHDEC/J72Fb2zC2oJNb45678967kghH43h3bBl31ldPs

    Если вы хотите, чтобы логи писались в локальный текстовый файл, нужно в файле sshd_config включить параметры:

    SyslogFacility LOCAL0 LogLevel INFO

    Перезапустите службу sshd и провеьте, что теперь логи SSH сервера пишутся в файл C:ProgramDatasshlogssshd.log

    Вы можете настроить удаленные WinRM подключения PSRemoting через защищенное SSH подключение.


  • Ошибка ‘Operating system wasn’t found’ при загрузке компьютера

    Сообщение ‘ Operating System not found' ‘ или ‘ Missing Operating System ‘ при включении компьютера говорит о том, что на диске отсутствует загрузчик операционной системы. Соответственно ваш компьютер не может найти и запустить загрузчик Windows (или другой ОС, установленной (далее…)

  • Программный RAID1 (зеркало) для загрузочного диска в Windows

    В Windows доступны встроенные средства для создания программных RAID массивов из нескольких физических дисков. Сначала рассмотрим простую конфигурацию, когда нужно создать зеркало из двух физических дисков с данными. Затем рассмотрим, как построить RAID1 конфигурацию для загрузочного (системного (далее…)

  • Как вручную скачать и установить обновления в Windows?

    Microsoft выпускает новые обновления безопасности для своих продуктов как минимум один раз в месяц. В большинстве случаев служба Windows Update прекрасно справляется с автоматическим получением и установкой обновлений в Windows. Но если нужно, вы можете вручную найти, скачать и установить (далее…)

  • Не удается расширить диск в Windows

    Довольно часто приходится расширять диски виртуальных машин, когда на системном диске заканчивается свободное место. Например, вы увеличили размер диска в настройках виртуальной машины VMware или Hyper-V, и теперь нужно расширить раздел в гостевой операционной системе (Windows).

    Содержание:
  • Команды DISM и SFC: проверка и восстановление системного образа Windows 10 и 11

    Для проверки целостности системных файлов и восстановления поврежденных файлов (библиотек) компонентов в Windows (Windows Server) можно использовать команды SFC и DISM. Эти две утилиты могут быть крайне полезными, если операционная система Windows работает нестабильно, появляются ошибки при (далее…)

  • Не работает разрешение имен DNS при VPN подключении в Windows

    По умолчанию для всех VPN подключений в Windows используется режим Force Tunnel (в настройках VPN включена опция ‘ Use default gateway on remote network ‘/’ Использовать основной шлюз в удаленной сети ‘). В этом режиме для разрешения имен будут использоваться DNS сервера, (далее…)