Поднять OpenSSH Server на Windows 10 1. Установить сервер # посмотреть статус компонентов OpenSSH Get-WindowsCapability -Online | Where-Object Name -like 'OpenSSH*' # установить сервер (клиент обычно уже стоит) Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0 2. Запустить службу и включить автозапуск Start-Service sshd Set-Service -Name sshd -StartupType Automatic Get-Service sshd # State должно быть Running 3. Фаервол (правило обычно создаётся автоматически; проверить/создать) Get-NetFirewallRule -Name *OpenSSH-Server* -ErrorAction SilentlyContinue | Select Name,Enabled # если пусто — создать: New-NetFirewallRule -Name sshd -DisplayName 'OpenSSH Server (sshd)' -Enabled True ` -Direction Inbound -Protocol TCP -Action Allow -LocalPort 22 4. Установить мой публичный ключ (аутентификация по ключу) ⚠️ Важный нюанс Windows OpenSSH: для аккаунтов из группы Администраторы ключи читаются НЕ из ~\.ssh\authorized_keys, а из общего файла C:\ProgramData\ssh\administrators_authorized_keys (со строгими ACL). Ниже — для админского аккаунта (под которым буду заходить): $key = 'ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJk5O6pRwMH927xCHUHfrDXQGVTyCJfbPSW+87+o9X4K claude-amlboot-teststand' $f = 'C:\ProgramData\ssh\administrators_authorized_keys' if (!(Test-Path $f)) { New-Item -ItemType File -Path $f -Force | Out-Null } Add-Content -Path $f -Value $key -Encoding ascii # ascii = без BOM, иначе sshd не распарсит # обязательный lockdown ACL (sshd отвергнет файл, доступный на запись не-админам): icacls $f /inheritance:r /grant 'Administrators:F' /grant 'SYSTEM:F' (Если зайду под не-админским аккаунтом — тогда C:\Users\\.ssh\authorized_keys, icacls не нужен.) 5. Узнать LAN-IP стенда (пришлёшь мне) Get-NetIPAddress -AddressFamily IPv4 | Where-Object { $_.IPAddress -notmatch '^(127|169\.254)' } | Select-Object IPAddress, InterfaceAlias 6. Проверить, что sshd слушает Get-Service sshd netstat -ano | findstr :22 # должна быть строка 0.0.0.0:22 LISTENING 7. (Опционально, рекомендую) сделать дефолтным шеллом PowerShell — удобнее cmd для нашей работы New-ItemProperty -Path "HKLM:\SOFTWARE\OpenSSH" -Name DefaultShell ` -Value "C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe" -PropertyType String