Openssh server windows 10
Начиная с Windows 10 1809 и Windows Server 2019 в операционной системе имеется встроенный SSH сервер, основанный на OpenSSH. В этой статье мы покажем, как установить и настроить OpenSSH сервер в Windows 10 и подключиться к нему удаленно по защищенному SSH протоколу (ну прям как в Linux 🙂 ).
Рассмотрим, как установить компонент OpenSSH Server в Windows 10 1903 (Windows Server 2019 все выполняется аналогично).
Пакет OpenSSH (как и RSAT) уже включен в данные версии Windows в виде Feature on Demand (FoD).
При наличии прямого Интернет-подключения вы можете установить сервер OpenSSH с помощью PowerShell
Add-WindowsCapability -Online -Name OpenSSH.Server*
Или при помощи DISM:
dism /Online /Add-Capability /CapabilityName:OpenSSH.Server
В Windows 10 этот компонент также можно установить через панель Параметры (Приложения -> Управление дополнительными компонентами -> Добавить компонент). Найдите в списке Open SSH Server и нажмите кнопку Install).
Чтобы проверить, что OpenSSH сервер установлен, выполните:
Get-WindowsCapability -Online | ? Name -like ‘OpenSSH.Ser*’
Установка сервера SSH
Можно было установить через Параметры:
Приложения ▶ Управление дополнительными компонентами ▶ Добавить компонент ▶ OpenSSH server
Но я решил воспользоваться PowerShell — так быстрее.
Проверим, установлен ли компонент SSH, для этого в PowerShell выполним:
Будет примерно такой вывод:
Если включены SRP — Software Restriction Policies, при этом запуск dismhost.exe не разрешён явно и блокируется, то можно получить такую ошибку:
Если после проверки выяснилось, что компонент не установлен, поставим его (серверную часть и клиентскую, я выбрал сразу всё):
Первичная конфигурация SSH-сервера
По умолчанию при подключении к OpenSSH-серверу используется командная строка Windows. Вы можете использовать практически любую оболочку на вашем компьютере с Windows через SSH-соединение. Даже возможно использовать Bash, когда подсистема Windows для Linux (WSL) также установлена на целевой машине. Также возможно изменение оболочки по умолчанию на SSH-сервере на нечто иное, чем командная оболочка. Для этого ключ реестра «DefaultShell» необходимо изменить.
Сделать это можно как через редактор реестра regedit.exe, открыв в нем следующий путь: HKEY_LOCAL_MACHINESOFTWAREOpenSSH и изменив в нем параметр DefaultShell, указав в нем полный путь до исполняемого файла необходимой командной строки, например:
Тоже самое можно сделать используя PowerShell:
New-ItemProperty -Path «HKLM:SOFTWAREOpenSSH» -Name DefaultShell -Value «C:WindowsSystem32WindowsPowerShellv1.0powershell.exe» -PropertyType String -Force
Проверим настройки Windows Firewall, используя для этого PowerShell:
Get-NetFirewallRule -Name *ssh*
Введя данную команду мы получим параметры правила, разрешающего SSH-подключение к серверу. Если правила не оказалось, введем следующую команду, создав его:
New-NetFirewallRule -Name sshd -DisplayName ‘OpenSSH Server (sshd)’ -Enabled True -Direction Inbound -Protocol TCP -Action Allow -LocalPort 22
Решение: Установите SSH на удаленном сервере
Чтобы решить проблему отсутствия сервера SSH, обратитесь к разделу о том, как установить сервер OpenSSH.
Неправильные учетные данные являются распространенными причинами отказа в SSH-соединении.
Убедитесь, что вы не вводите имя пользователя или пароль неправильно.
Затем проверьте, правильно ли вы используете IP-адрес сервера.
Наконец, убедитесь, что у вас открыт правильный порт SSH.
Проверить это можно, выполнив следующие действия:
На выводе отображается номер порта, как показано на рисунке ниже.
Примечание: Вы можете подключиться к удаленной системе по SSH, используя аутентификацию с помощью пароля или открытого ключа (беспарольный вход по SSH). Если вы хотите настроить аутентификацию с открытым ключом, обратитесь к разделу Как обменяться ключом SSH для аутентификации без пароля между серверами Linux
Подключение к Windows 10 через SSH
Теперь вы можете попробовать подключиться к своей Windows 10 через SSH клиент (я использую putty, но можно пользоваться встроенным ssh клиентом Windows).
При первом подключении появится стандартный запрос на добавление узла в список известных SSH хостов.
Нажимаем Да, и в открывшееся окне авторизуемся под пользователем Windows.
При успешном подключении запускается командная оболочка cmd.exe со строкой-приглашением.
В командной строке вы можете выполнять различные команды, запускать скрипты и программы.
Я предпочитаю работать в командной строке PowerShell. Чтобы запустить интерпретатор PowerShell, выполните:
Чтобы изменить Shell по умолчанию в OpenSSH с cmd.exe на PowerShell, внесите изменение в реестр такой командой:
New-ItemProperty -Path «HKLM:SOFTWAREOpenSSH» -Name DefaultShell -Value «C:WindowsSystem32WindowsPowerShellv1.0powershell.exe» -PropertyType String –Force
Осталось перезапустить SSH подключение и убедиться, что при подключении используется командный интерпретатор PowerShell (об этом свидетельствует приглашение PS C:Usersadmin> ).
В SSH сессии запустилась консоль PowerShell, в которой работают привычные функции: авто дополнение, раскраска модулем PSReadLine, история команд и т.д. Если текущий пользователь входит в группу локальных администраторов, то все команды в его сессии выполняются с повышенными правами даже при включенном UAC.
M icrosoft объявила о том, что в 2015 году к Windows будет подключен клиент OpenSSH. Они, наконец, сделали это, и внедрили клиент SSH в обновлении Windows 10 Fall Creators. Теперь Вы можете подключиться к серверу Secure Shell из Windows без установки PuTTY или любого другого стороннего программного обеспечения.
Это все еще бета-функция, поэтому Вам может быть лучше пользоваться PuTTY, пока она не станет стабильной. Согласно отслеживанию ошибок проекта на GitHub, интегрированный клиент SSH поддерживает только ключи ed25519.
Активировать сервер и клиент OpenSSH в Windows 10
Начиная с Fall Creators Update, Windows 10 приносит с собой клиент и сервер на базе OpenSSH так что любой пользователь, который хочет его использовать, может сделать это без проблем. Эти функции не являются обязательными, поскольку они могут понадобиться не всем пользователям, поэтому нам придется вручную включить их, чтобы использовать их.
Чтобы установить OpenSSH клиент и / или сервер ОС Windows 10 , что нам нужно сделать, это открыть меню конфигурации операционной системы и перейти в раздел «Приложения> Приложения и функции> Дополнительные функции.
Здесь мы увидим раздел о дополнительных функциях Windows. Мы можем увидеть все те, которые мы установили и активировали в операционной системе, и установить те, которые нам нужны, если у нас их еще нет. Для этого нам нужно будет нажать » Добавить функцию ».
Мы увидим все функции и дополнительные возможности, которые предлагает нам Windows 10. Нас интересуют клиент и сервер SSH. Мы можем искать их вручную, но самый быстрый способ — ввести » SSH »В поисковой системе, чтобы быстро найти и сервер, и клиента.
Выбираем то, что хотим установить, и принимаем окно. Windows 10 автоматически установит и настроит эту дополнительную функцию, поэтому нам больше не придется ничего делать. По завершении процесса и сервер, и клиент готовы к использованию в операционной системе.
Как их удалить
Если наступит время, когда нам больше не понадобится этот клиент или этот сервер, мы сможем отключить эти дополнительные функции Windows. Не для того, чтобы освободить место, поскольку между клиентом и сервером они едва достигают 30 МБ, а для того, чтобы функции были в порядке и во избежание того, что из-за ошибки кто-то может удаленно подключиться к нашему ПК.
Мы можем сделать это из того же раздела дополнительных функций выше. В списке установленных функций мы видим все, что мы включили в системе. Мы находим клиента и / или сервер и удаляем их по отдельности.
Когда удаление будет завершено, эти службы больше не будут доступны.
Настройка SSH сервера в Windows
После уставной сервера OpenSSH в Windows вам нужно изменить тип запуска службы sshd на автоматический и запустить службу с помощью PowerShell:
Set-Service -Name sshd -StartupType ‘Automatic’
Start-Service sshd
С помощью nestat убедитесь, что теперь в системе запущен SSH сервер и ждет подключений на 22 порту:
netstat -na| find «:22»
Проверьте, что включено правило брандмауэра (Windows Defender Firewall), разрешающее входящие подключения к Windows по порту TCP/22.
Get-NetFirewallRule -Name *OpenSSH-Server* |select Name, DisplayName, Description, Enabled
Если правило отключено (состоянии Enabled=False) или отсутствует, вы можете создать новое входящее правило командой New-NetFirewallRule:
New-NetFirewallRule -Name sshd -DisplayName ‘OpenSSH Server (sshd)’ -Enabled True -Direction Inbound -Protocol TCP -Action Allow -LocalPort 22
По умолчанию важным компоненты OpenSSH хранятся в следующих каталогах:
- Исполняемые файлы OpenSSH Server: C:WindowsSystem32OpenSSH
- Конфигурационный файл sshd_config (создается после первого запуска службы): C:ProgramDatassh
- Журнал OpenSSH: C:windowssystem32OpenSSHlogssshd.log
- Файл authorized_keys и ключи: %USERPROFILE%.ssh
При установке OpenSSH сервера в системе создается новый локальный пользователь sshd.
Заключение
Вы узнали, как установить и включить SSH в Ubuntu 18.04. Теперь вы можете войти на свой компьютер и выполнять общие задачи системного администратора через командную строку.
По умолчанию SSH прослушивает порт 22. Изменение порта SSH по умолчанию добавляет дополнительный уровень безопасности вашему серверу, снижая риск автоматических атак.
Если вы управляете несколькими системами, вы можете упростить рабочий процесс, указав все свои подключения в файле конфигурации SSH .
Для получения дополнительной информации о том, как настроить свой SSH-сервер, прочтите руководство по SSH / OpenSSH / настройке Ubuntu и официальную страницу руководства по SSH .