Як налаштувати SSH-підключення на Windows 11
Поки працював з VPS, доводилось весь час відкривати окремі SSH-клієнти типу PuTTY. Виявилось, що Windows 11 має вбудований SSH-клієнт і навіть SSH-сервер — просто треба їх увімкнути.
SSH-клієнт (підключатись з Windows на сервер)
Найкраща новина — клієнт вже встановлений за замовчуванням. Просто відкривай PowerShell і підключайся:
1
ssh root@sedunlab.com
Якщо це перше підключення, з’явиться запит підтвердити fingerprint сервера — пишеш yes і вводиш пароль.
Підключення без пароля через SSH-ключ
Генеруємо пару ключів локально:
1
ssh-keygen -t ed25519 -C "adm@windows"
Тричі тисни Enter щоб залишити стандартні шляхи і без пароля на ключ (або постав пароль, якщо хочеш додатковий захист).
Копіюємо публічний ключ на сервер:
1
type $env:USERPROFILE\.ssh\id_ed25519.pub | ssh root@sedunlab.com "cat >> ~/.ssh/authorized_keys"
Тепер ssh root@sedunlab.com підключає без запиту пароля.
Зручний доступ через config файл
Щоб не вводити повну адресу щоразу, створюємо файл конфігурації:
1
notepad $env:USERPROFILE\.ssh\config
Додаємо: Host vps HostName sedunlab.com User root Port 22 IdentityFile ~/.ssh/id_ed25519
Тепер підключення стає коротким:
1
ssh vps
SSH-сервер (підключатись ДО Windows ззовні)
Це знадобиться якщо хочеш керувати своїм Windows-комп’ютером віддалено — наприклад з VPS або іншого пристрою.
Встановлення OpenSSH Server
Через PowerShell з правами адміністратора:
1
Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0
Запускаємо службу і ставимо автозапуск:
1
2
Start-Service sshd
Set-Service -Name sshd -StartupType Automatic
Відкриваємо порт у фаєрволі
1
2
3
New-NetFirewallRule -Name sshd -DisplayName 'OpenSSH Server' `
-Enabled True -Direction Inbound -Protocol TCP `
-Action Allow -LocalPort 22
Перевірка
З іншого пристрою (наприклад з VPS) пробуємо підключитись:
1
ssh adm@IP_твого_Windows
Вводиш пароль свого Windows-акаунту — і ти всередині PowerShell на своєму комп’ютері.
Корисні дрібниці
Перевірити статус SSH-служби:
1
Get-Service sshd
Подивитись лог підключень:
1
Get-WinEvent -LogName "OpenSSH/Operational" -MaxEvents 20
Змінити стандартний шелл з cmd на PowerShell для SSH-сесій:
1
2
3
4
New-ItemProperty -Path "HKLM:\SOFTWARE\OpenSSH" `
-Name DefaultShell `
-Value "C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe" `
-PropertyType String -Force
Тепер Windows і VPS говорять однією мовою — SSH в обидва боки, без сторонніх програм.