Planetahost VPS
Перейти к основному контенту

Установка и настройка OpenSSH Server в Windows

intro-Installing-and-Configuring-OpenSSH-Server-Windows-planetahost.png

Подробности урока
Уровень сложности Лёгкий
Права администратора Требуются
Требования Командная строка
Категория Установка ПО
Совместимость с ОС Windows
Примерное время чтения 15 мин

Введение

По умолчанию управление Windows Server чаще всего осуществляется через RDP. Однако во многих случаях гораздо удобнее использовать SSH: подключение занимает меньше времени, позволяет автоматизировать администрирование и не требует запуска графического интерфейса.

Начиная с Windows Server 2019 и Windows 10 версии 1809, OpenSSH Server входит в состав операционной системы и может быть установлен как дополнительный компонент.

После настройки вы сможете:

  • подключаться к серверу по SSH;

  • выполнять команды PowerShell и CMD;

  • передавать файлы через SCP и SFTP;

  • использовать SSH-ключи вместо паролей;

  • автоматизировать администрирование с помощью скриптов.


Инструкция

Проверка наличия OpenSSH

Откройте PowerShell от имени администратора и выполните:

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

Если OpenSSH уже установлен, вы увидите примерно такой результат:

изображение.png


Установка OpenSSH Server

Если сервер еще не установлен, выполните команду:

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

изображение.png

После завершения установки проверьте состояние службы:

Get-Service sshd

изображение.png


Запуск службы

Запустите SSH-сервер:

Start-Service sshd

Чтобы служба запускалась автоматически после перезагрузки:

Set-Service -Name sshd -StartupType Automatic

Проверить состояние можно командой:

Get-Service sshd

Если все прошло успешно, статус будет:

изображение.png


Проверка брандмауэра

Во время установки обычно автоматически создается правило Windows Firewall.

Проверить его наличие можно так:

Get-NetFirewallRule -Name *ssh*

изображение.png

Если правило отсутствует, создайте его:

New-NetFirewallRule `
-Name "OpenSSH-Server" `
-DisplayName "OpenSSH Server" `
-Enabled True `
-Direction Inbound `
-Protocol TCP `
-Action Allow `
-LocalPort 22

Проверка прослушивания порта

Убедитесь, что сервер слушает порт 22:

netstat -ano | findstr :22

или

Get-NetTCPConnection -LocalPort 22

изображение.png


Подключение к серверу

С Linux или macOS:

ssh Administrator@IP_СЕРВЕРА

Из Windows (PowerShell):

ssh Administrator@IP_СЕРВЕРА

При первом подключении появится запрос подтверждения ключа сервера:

Are you sure you want to continue connecting (yes/no)?

Введите:

yes

После этого потребуется ввести пароль пользователя Windows.

изображение.png


Использование ключей SSH

Для повышения безопасности рекомендуется использовать аутентификацию по ключам.

Создайте ключ на клиентском компьютере:

ssh-keygen -t ed25519

Скопируйте публичный ключ на сервер в файл:

C:\Users\Administrator\.ssh\authorized_keys

При необходимости создайте каталог .ssh вручную.

После этого вход можно будет выполнять без ввода пароля.


Передача файлов

Копирование файла на сервер:

scp backup.zip Administrator@IP_СЕРВЕРА:C:\Temp\

Копирование файла с сервера:

scp Administrator@IP_СЕРВЕРА:C:\Logs\app.log .

Выполнение удаленных команд

SSH позволяет выполнять команды без открытия интерактивной консоли.

Например:

ssh Administrator@IP_СЕРВЕРА hostname

изображение.png

или

ssh Administrator@IP_СЕРВЕРА "Get-Service"

Это удобно для автоматизации и написания скриптов.


Полезные команды PowerShell

Запуск из терминала:

powershell

Перезапуск службы:

Restart-Service W3SVC

Просмотр процессов:

Get-Process

изображение.png

Перезагрузка сервера:

Restart-Computer

Проверка свободного места:

Get-Volume

изображение.png

Информация о системе:

Get-ComputerInfo

Проверка работы SSH

На клиентском компьютере выполните:

ssh Administrator@IP_СЕРВЕРА

Если отображается приглашение PowerShell, настройка выполнена успешно.


Заключение

OpenSSH значительно упрощает администрирование Windows Server. Он позволяет выполнять большинство задач без использования удаленного рабочего стола, ускоряет работу администратора и открывает возможности для автоматизации с помощью PowerShell, SCP, SFTP и SSH-ключей.

Для большинства повседневных операций, таких как управление службами, настройка системы, работа с файлами и выполнение сценариев, SSH является удобной и безопасной альтернативой RDP.