Newsletter 365tipů můžete číst zdarma. Placené předplatné je dobrovolná podpora, která pomáhá webu pokračovat.
Podpořit 365tipů

TIP#3273: Jak na Windows 11 zprovoznit přístup přes SSH? A nenaletět na tři nejčastější pasti

Když už mám ty aplikace jako Codex/Claude Code, tak je fakt dobré mít všude SSH přístup. Takže hotovo i pro Windows 11. Ale byl to trochu boj. Tady máte (s pomocí AI) souhrn i postup. A SSH takto umí i Windows 10.

SSH na Windows 11 zní jako jedna povolená funkce a pět minut práce. Realita je bohužel jinak – narazíte minimálně na tři věci, které vás v tichosti pošlou zpátky na start. Tenhle návod je sepsaný přímo z reálného zprovoznění, včetně všech zádrhelů, na které jsme narazili cestou.

Co budete potřebovat

  • Windows 11 (funguje i na Windows 10, postup je identický)
  • Administrátorský přístup k PowerShellu
  • Druhý počítač (Mac, Linux, jiný Windows), ze kterého se budete připojovat

Krok 1: Instalace OpenSSH Server

Nejjednodušší cesta vede přes Settings → System → View Features → See Additional Feautures → najít, zašrtnout a přidate → OpenSSH Server. V mnoha případech to ale po dlouhém načítání skončí lakonickým „Couldn’t add feature“ bez jakéhokoli detailu, proč.

Spolehlivější je jít rovnou přes PowerShell (spuštěný jako Administrator):

Get-WindowsCapability -Online | Where-Object Name -like ‚OpenSSH.Server*‘ | Add-WindowsCapability -Online

Tenhle příkaz si sám najde přesný interní název balíčku (něco jako OpenSSH.Server~~~~0.0.1.0 – ty tildy jsou skutečná součást názvu, nejde o překlep ani o speciální klávesu, kterou musíte hledat na klávesnici) a nainstaluje ho bez nutnosti cokoli opisovat ručně.

Jednořádkově přímo například takto: Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0

Úspěšný výstup vypadá takto:

Path          :
Online        : True
RestartNeeded : False

Pokud by to i přes PowerShell selhávalo, obvykle pomůže něco z tohoto:

Krok 2: Spuštění služby

Start-Service sshd
Set-Service -Name sshd -StartupType ‚Automatic‘

Ověřte, že běží:

Get-Service sshd

Měli byste vidět Status: Running.

TIP: K čemu se něco takového hodí? No prostě k vzdálenému přístup do Powershellu na Windows přes SSH. Což můžete dělat ručně, ale daleko zajímavější je to umožnit něčemu jako Codex/Claude Code, jak už bylo řečeno hned na samém počátku. Umí velmi dobře ten stroj spravovat a právě přes Powerhell jde dělat záplava věcí.

Past č. 1: Přihlašujete se přes PIN, ale SSH chce heslo

Většina lidí na Windows 11 se přihlašuje přes PIN nebo Windows Hello. Jenže PIN je vázaný na konkrétní zařízení a jeho TPM čip – přes síť (a SSH je typicky tzv. network logon) ho prostě nelze použít. SSH bude chtít skutečné heslo k účtu.

Past č. 2: Máte Microsoft účet, a heslo přesto nefunguje

Tohle je ta nejzákeřnější past. I když si heslo k Microsoft účtu pamatujete a je správně, síťové přihlášení (network logon) s online (Microsoft) účtem se přes SSH často spolehlivě neověří. Je to známé omezení způsobu, jakým Windows ověřuje Microsoft účty offline/přes síť – ne chyba na vaší straně a ne špatně zadané heslo.

Řešení: vytvořit samostatný lokální účet čistě pro SSH.

V PowerShellu (jako Administrator):

net user sshuser „VašeSilnéHeslo123!“ /add
net localgroup Administrators sshuser /add

Tip: Pokud dostanete System error 5: Access is denied, PowerShell okno neběží jako Administrator, i když jste přihlášeni na účet s admin právy. Otevřete si PowerShell znovu přes pravé tlačítko → „Run as administrator“ a potvrďte UAC dialog.

Od teď se přihlašujete jako:

ssh [email protected] (případně IP adresou)

s heslem, které jste zadali v net user – tohle už je čistě lokální credential, bez závislosti na Microsoft cloud ověření, a funguje spolehlivě.

Past č. 3: Připojíte se, ale příkazy jako Add-Content nefungují

Pokud po přihlášení vidíte prompt ve stylu C:\Users\sshuser> (bez PS na začátku), jste v cmd.exe, ne v PowerShellu – Windows OpenSSH totiž jako výchozí shell nastavuje cmd. PowerShell příkazy tam logicky selžou s is not recognized as an internal or external command.

Přepnout se dá jednoduše:

powershell

Prompt se změní na PS C:\Users\sshuser> a PowerShell příkazy fungují normálně.

Krok 3: Bezheslové přihlášení přes SSH klíč

Až budete mít spolehlivý lokální účet, vyplatí se nastavit i přihlášení přes klíč – zvlášť pokud se na stroj bude připojovat automatizovaně nějaký skript nebo nástroj.

Na stroji, ze kterého se budete připojovat:

ssh-keygen -t ed25519 -C „popis-pro-identifikaci“
cat ~/.ssh/id_ed25519.pub

Zkopírujte celý vypsaný řádek (začíná ssh-ed25519 AAAA…).

Na Windows stroji – a tady je další specifikum: pokud je váš SSH účet členem skupiny Administrators (běžně bude, pokud jste ho tak založili výše), Windows OpenSSH ignoruje běžný C:\Users\<účet>\.ssh\authorized_keys a čte klíče výhradně z jiného, sdíleného umístění:

Add-Content -Path „C:\ProgramData\ssh\administrators_authorized_keys“ -Value „ssh-ed25519 AAAA… popis-pro-identifikaci“

Tomuhle souboru je pak potřeba nastavit striktní oprávnění – bez toho ho SSH tiše ignoruje a spadne zpátky na dotaz na heslo:

icacls.exe „C:\ProgramData\ssh\administrators_authorized_keys“ /inheritance:r
icacls.exe „C:\ProgramData\ssh\administrators_authorized_keys“ /grant „Administrators:F“ „SYSTEM:F“

A restartovat službu, ať se změna projeví:

Restart-Service sshd

Krok 4: Test

Z druhého stroje:

ssh [email protected]

Pokud vás to pustí dovnitř bez dotazu na heslo, máte hotovo.

Shrnutí – kde nejčastěji ztroskotáte

ProblémPříčinaŘešení
GUI hlásí „Couldn’t add feature“Zaseknutý Windows Update mechanismus na pozadíInstalovat přes Add-WindowsCapability v PowerShellu
SSH chce heslo, vy máte jen PINPIN je vázaný na TPM konkrétního zařízeníPoužít skutečné heslo k účtu
Heslo k Microsoft účtu SSH odmítáNetwork logon s online účtem není spolehlivýVytvořit samostatný lokální účet (net user … /add)
net user hlásí „Access is denied“PowerShell neběží jako AdministratorSpustit znovu přes „Run as administrator“
Po přihlášení nefungují PowerShell příkazyVýchozí SSH shell je cmd.exe, ne PowerShellNapsat powershell pro přepnutí
SSH klíč „nefunguje“, pořád chce hesloAdmin účty čtou klíče z jiné cesty (administrators_authorized_keys), ne z .ssh ve vašem profilu, nebo chybí správná oprávněníPoužít C:\ProgramData\ssh\administrators_authorized_keys + nastavit icacls

S tímhle přehledem by vám zprovoznění SSH na Windows 11 mělo zabrat řádově minuty místo hodiny stráveného laděním záhadných chybových hlášek.