OpenSSH на Windows 11 — не работает в PowerShell

OpenSSH — встроенный SSH клиент в Windows 10/11. Иногда он пропадает из PATH или вовсе не установлен. В этой статье разберём как восстановить работу ssh команды.


Симптом

Открываешь PowerShell и видишь:

PS C:\Users\user> ssh
ssh : Имя "ssh" не распознано как имя командлета, функции, файла сценария
или выполняемой программы.

При этом в cmd.exe SSH может работать — это нормально, у них разные PATH.


Шаг 1 — Проверить статус OpenSSH

В PowerShell от администратора:

Get-WindowsCapability -Online | Where-Object Name -like 'OpenSSH*'

Возможные варианты:

StateЧто означает
NotPresentНе установлен — нужно установить
InstalledУстановлен, но файл не найден — система повреждена

Проверить наличие файла:

Test-Path "C:\Windows\System32\OpenSSH\ssh.exe"

Шаг 2 — Установить через PowerShell

Add-WindowsCapability -Online -Name OpenSSH.Client~~~~0.0.1.0

Перезапусти PowerShell и проверь ssh. Если всё равно не работает — переходи к шагу 3.


Шаг 3 — Установить через DISM

Запусти PowerShell от администратора:

DISM /Online /Add-Capability /CapabilityName:OpenSSH.Client~~~~0.0.1.0

DISM покажет прогресс до 100% и напишет «Операция успешно завершена». После этого закрой и открой PowerShell заново.


Шаг 4 — Если файл всё ещё не появился

Значит система Windows повреждена. Попробуй восстановление:

Start-Service -Name TrustedInstaller
sfc /scannow

Или используй Git for Windows как быстрый вариант — он включает ssh в PATH автоматически.


Почему в cmd работает, а в PowerShell нет?

У cmd.exe и PowerShell разные переменные PATH. OpenSSH от Git или старые установки могут попасть в системный PATH (который видит cmd), но не в PATH PowerShell. После установки через DISM оба используют один бинарник из C:\Windows\System32\OpenSSH\.

Комментарии

Комментариев пока нет.