В состав Windows Server входит OpenSSH Server в сборке Microsoft, поэтому Windows-сервером можно управлять так же, как Linux: выполнять команды PowerShell по SSH, автоматизировать задачи скриптами и безопасно копировать файлы через scp или SFTP-клиенты вроде WinSCP и FileZilla — не открывая сеанс удалённого рабочего стола. В статье: установка и запуск SSH-сервера в Windows Server 2019, 2022 и 2025, PowerShell как оболочка по умолчанию, вход администраторов по ключам, смена порта и передача файлов.
Откройте PowerShell от имени администратора. Команда ниже показывает, установлены ли клиент и сервер; в Windows Server 2025 сервер обычно уже присутствует, и его нужно только включить.
Get-WindowsCapability -Online | Where-Object Name -like 'OpenSSH*'
# Install the server if its State is NotPresent
Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0
В Windows Server 2016, где OpenSSH Server нет в составе системы, установите MSI-пакет Win32-OpenSSH из релизов Microsoft в репозитории PowerShell/Win32-OpenSSH на GitHub.
# Start sshd now and at every boot
Start-Service sshd
Set-Service -Name sshd -StartupType Automatic
# The installer normally creates an inbound rule for TCP 22; create it if it is missing
if (-not (Get-NetFirewallRule -Name 'OpenSSH-Server-In-TCP' -ErrorAction SilentlyContinue)) {
New-NetFirewallRule -Name 'OpenSSH-Server-In-TCP' -DisplayName 'OpenSSH Server (sshd)' `
-Enabled True -Direction Inbound -Protocol TCP -Action Allow -LocalPort 22
}
Get-Service sshd
netstat -ano | findstr ":22"
Теперь подключитесь со своего компьютера командой ssh [email protected] (SSH-клиент есть в Windows 10/11, macOS и Linux) и введите пароль администратора. По умолчанию открывается приглашение cmd.exe.
New-ItemProperty -Path "HKLM:\SOFTWARE\OpenSSH" -Name DefaultShell `
-Value "C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe" -PropertyType String -Force
Теперь новые SSH-сеансы запускаются в PowerShell. Если у вас установлен PowerShell 7, укажите вместо этого путь к pwsh.exe.
Для учётных записей из группы Administrators OpenSSH в Windows берёт открытые ключи из одного общего файла C:\ProgramData\ssh\administrators_authorized_keys, а не из папки .ssh в профиле пользователя. Доступ к этому файлу должен быть только у Administrators и SYSTEM, иначе sshd его игнорирует.
# On your own computer: create a key pair if you do not have one yet
ssh-keygen -t ed25519
# On the server (PowerShell as Administrator): paste your PUBLIC key (id_ed25519.pub)
Add-Content -Path "C:\ProgramData\ssh\administrators_authorized_keys" -Value "ssh-ed25519 AAAA...your-key... you@laptop"
icacls.exe "C:\ProgramData\ssh\administrators_authorized_keys" /inheritance:r /grant "Administrators:F" /grant "SYSTEM:F"
Проверьте вход по ключу в новом окне. Когда всё заработает, откройте C:\ProgramData\ssh\sshd_config в Блокноте и задайте:
PubkeyAuthentication yes
PasswordAuthentication no
Restart-Service sshd
Не закрывайте текущий сеанс, пока не убедитесь, что новый вход по ключу работает. Для обычных пользователей (не администраторов) ключи размещаются в C:\Users\USERNAME\.ssh\authorized_keys.
# In C:\ProgramData\ssh\sshd_config set: Port 2222
New-NetFirewallRule -Name 'OpenSSH-2222' -DisplayName 'OpenSSH Server 2222' `
-Direction Inbound -Protocol TCP -LocalPort 2222 -Action Allow
Restart-Service sshd
Disable-NetFirewallRule -Name 'OpenSSH-Server-In-TCP' # close 22 after testing 2222
Чтобы разрешить SSH только со своих адресов, добавьте к правилу брандмауэра параметр -RemoteAddress 198.51.100.20. Подробнее о правилах брандмауэра Windows — в статье об открытии и закрытии портов в брандмауэре Windows.
# Upload a file to the Administrator desktop (use forward slashes in Windows paths)
scp .\site-backup.zip [email protected]:C:/Users/Administrator/Desktop/
# Download a folder recursively
scp -r [email protected]:C:/inetpub/wwwroot ./wwwroot-copy
# Interactive SFTP session
sftp -P 2222 [email protected]
Подойдут и графические клиенты, например WinSCP и FileZilla: выберите протокол SFTP, укажите IP и порт сервера, ключ или пароль. Для больших файлов это гораздо быстрее и надёжнее, чем копирование через буфер обмена удалённого рабочего стола.
Для учётных записей администраторов ключ должен лежать в administrators_authorized_keys с правами доступа ровно как в шаге 4. Откройте журнал Просмотр событий → Журналы приложений и служб → OpenSSH → Operational (Event Viewer → Applications and Services Logs → OpenSSH → Operational) — обычно там указана причина, например неверный владелец файла или права доступа.
Служба sshd не запущена, нет правила в брандмауэре или вы подключаетесь не к тому порту. Выполните Test-NetConnection 203.0.113.10 -Port 22 на своём компьютере и Get-Service sshd на сервере.
Да. SSH и удалённый рабочий стол работают параллельно. Многие администраторы используют SSH для скриптов и передачи файлов, а удалённый рабочий стол оставляют для графических инструментов.
Если проблема не решена, создайте тикет — техническая поддержка IMIDC работает 24/7. Укажите IP сервера, версию Windows Server, выполненную команду SSH и полный вывод ошибки (подробности покажет ssh -v), чтобы мы быстрее нашли причину.