Как подключить linux к windows server

Время на прочтение
6 мин

Количество просмотров 26K

В прошлой статье я обещал рассмотреть механизм удаленного подключения с Windows на серверы под управлением *nix, и наоборот при помощи PowerShell. Обещанного обычно ждут три года, но я успел чуть раньше. Что ж, если хочется с верного макбука управлять гетерогенной инфраструктурой, или наоборот ― с Surface Pro рулить Linux-серверами без всяких putty, ― прошу под кат.

Microsoft Loves Linux

Еще в 2015 году Microsoft торжественно объявила о запуске программы «Microsoft Linux». Сюда вошла как банальная поддержка гостевых *nix-like OS на Hyper-V, так и встроенная в Windows 10 Ubuntu и возможность запуска в Docker продуктов Microsoft, таких как SQL Server.

Компания также опубликовала исходный код PowerShell, что позволило запускать «Ракушку Мощи» не только на Windows. Из-под одноименного аккаунта на Github, помимо исходного кода, выложены и бинарники под большинство современных систем (лицензия MIT).

Это позволяет настроить удаленное управление с помощью единого инструмента ― PowerShell. Помимо подключения к консоли компьютера, можно запускать отдельные команды, в том числе и на нескольких серверах одновременно. Довольно удобно для автоматизации задач администрирования, таких как массовое изменение настроек, инвентаризация, сбор логов.

Порой удобно совмещать традиционные консольные команды со вставками PowerShell:

cat /etc/passwd | ConvertFrom-Csv -Delimiter ':' -Header Name,Passwd,UID,GID,Description,Home,Shell | Sort-Object Name | Format-Table

Для подключения к Windows-машинам при помощи PowerShell используется протокол WS-Man. Для GNU\Linux привычен SSH. Так как сегодня становятся универсальными оба протокола, разберем их подробнее.

PowerShell 6.0 под Windows и *nix, пока еще находится в бете. Поэтому не рекомендую без хорошего тестирования применять на боевых серверах описанное ниже.

Магомед не идет к горе

Когда технология удаленного доступа при помощи PowerShell только набирала обороты, единственным универсальным способом подключения к разным системам был протокол WS-Man. Для тестового стенда я взял Windows Server 2016 и Centos 7, для которых и буду настраивать возможность удаленного подключения и выполнения команд при помощи этого протокола.

Для начала установим на Centos свежий PowerShell:

curl https://packages.microsoft.com/config/rhel/7/prod.repo > /etc/yum.repos.d/microsoft.repo

yum install -y powershell

pwsh

После установки появилась возможность запускать привычные Windows-администратору командлеты. Например, посмотрим версию PS и получим список запущенных процессов командлетами $PSVersionTable и Get-Process:


Работаем в консоли PowerShell на CentOS.

Чтобы подключаться к Linux-машине с консоли Windows, нам понадобится установить и настроить:

  • OMI (Open Management Infrastructure) ― адаптация WMI, которую также можно использовать для управления компьютерами с ОС, отличными от Windows;
  • PSRP (PowerShell Remoting Protocol) ― библиотека, необходимая для удаленного подключения PowerShell.

Подробно с работой и эволюцией OMI и PSRP можно ознакомиться в отличном материале от Matt Wrock, я же просто установлю OMI командой:

yum install omi

Далее нужно настроить порты и аутентификацию в конфигурационном файле /etc/opt/omi/conf/omiserver.conf, после чего перезапустить сервер командой:

/opt/omi/bin/service_control restart

Для упрощения эксперимента я не буду настраивать ни NTLM-аутентификацию, ни Kerberos. Еще и шифрование отключу ― разумеется, в боевой среде делать этого не стоит. Для включения текстовой аутентификации и шифрования на стороне Windows в работе winrm достаточно выполнить следующие команды:

winrm set winrm/config/client/auth @{Basic="true"}
winrm set winrm/config/client @{AllowUnencrypted="true"}
winrm set winrm/config/service/auth @{Basic="true"}
winrm set winrm/config/service @{AllowUnencrypted="true"}

После настройки можно проверить работу OMI из консоли Windows:

winrm enumerate http://schemas.microsoft.com/wbem/wscim/1/cim-schema/2/OMI_Identify?__cimnamespace=root/omi -r:http://server:5985 -auth:Basic -u:root -p:"password" -skipcncheck -skipcacheck -encoding:utf-8 -unencrypted


Подключаемся к CentOS из cmd.

Теперь проверим работу обратным подключением ― из Linux к Windows:

/opt/omi/bin/omicli ei root/cimv2 Win32_Environment --auth Basic --hostname server -u username -p password --port 5985 


… а затем с CentOS подключаемся к Windows.

После того, как WMI\OMI заработал, нужно установить и настроить PSRP. К сожалению и вопреки инструкции, бинарник отсутствует. Библиотеку пришлось компилировать, долго и нудно исправляя возникающие ошибки зависимостей:

yum groupinstall 'Development Tools'
yum install openssl-devel pam-devel
git clone --recursive [https://github.com/PowerShell/psl-omi-provider.git](https://github.com/PowerShell/psl-omi-provider.git)

cd psl-omi-provider/
make release
rpm -ihv target/Linux_ULINUX_1.0_x64_64_Release/psrp-1.4.1-0.universal.x64.rpm

Теперь мы сможем подключаться с Windows на Linux и наоборот при помощи PowerShell. Начнем с Windows на Linux:

$cred = Get-Credential

#пропустим проверку сертификата для нашей тестовой лаборатории
$o = New-PSSessionOption -SkipCACheck -SkipRevocationCheck -SkipCNCheck

#выполнение команды:
Invoke-Command -ComputerName server -ScriptBlock { Get-Process } -Authentication Basic -SessionOption $o -Credential $cred -UseSSL | Select-Object -First 5

#подключение к консоли
Enter-PSSession -ComputerName 'server' -Credential $cred -Authentication basic -UseSSL -SessionOption $o


С Windows на Linux.

Аналогичным образом можно провести и обратное подключение.

Invoke-Command можно «натравить» на список компьютеров, и с рабочей станции Windows создать пользователя на всех серверах Linux командой вида:

 Invoke-Command -ComputerName server1,server2,server3  -ScriptBlock { adduser admin;echo admin:password | chpasswd
 }

Надо сказать, что способ не самый удобный и эффективный. Минусов добавляет компиляция библиотек, разнообразные баги ― например, на момент написания статьи PSRP не позволял нормально подключиться из Linux в Windows.

Да и сами разработчики рекомендуют не плясать вокруг WS-Man, а обратиться к проверенному способу ― SSH. Что ж, попробуем и его.

Гора идет к Магомету

На этот раз машина с Windows получит чуть больше специфической подготовки ― нужно установить свежий PowerShell и OpenSSH.

После можно проверить синтаксис командлета New-PSSession. Если все произошло как надо, то командлет, помимо привычного параметра ComputerName, будет поддерживать и HostName.


PowerShell 6.0.0-beta.9 и обновленный синтаксис командлета.

Установка OpenSSH описана в отдельной инструкции.

Но под спойлером вы найдете все основные моменты.

Качаем последний релиз или используем пакет из репозитория Chocolatey. Все это разархивируем в \Program Files\OpenSSH.

В консоли с правами администратора переходим в папку с разархивированным содержимым и запускаем установку командой:

powershell -ExecutionPolicy Bypass -File install-sshd.ps1

Теперь генерируем ключи:

.\ssh-keygen.exe -A
.\FixHostFilePermissions.ps1 -Confirm:$false

В тестовой среде мы будем использовать парольную аутентификацию, поэтому стоит убедиться что она включена в файле sshd_config:

```bash
PasswordAuthentication yes
```

Если вы также хотите автоматически запускать PowerShell при подключении по SSH, то в параметре subsystem нужно прописать путь к желаемой версии PS:

Subsystem   powershell C:/Program Files (x86)/PowerShell/6.0.0-beta.9/pwsh.exe -sshs -NoLogo -NoProfile

Для работы клиента SSH нужно добавить директорию в %PATH% любым удобным способом. Например, таким:

setx path "%path%;C:\Program Files\OpenSSH"

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

Set-Service sshd -StartupType Automatic
Set-Service ssh-agent -StartupType Automatic
net start sshd

После установки уже можно наслаждаться подключением к серверу Windows по ssh.


C Windows через Putty на Linux, с Linux обратно на Windows по SSH.

На достигнутом останавливаться не будем и перейдем к настройке Linux. При настройке сервера SSH по умолчанию достаточно прописать PowerShell в Subsystem:

Subsystem powershell /usr/bin/pwsh -sshs -NoLogo -NoProfile

Теперь проверим подключение через командлет New-PSSession и Invoke-Command.

Сначала Windows:


Работаем из PowerShell с Linux-сервером.

Теперь подключимся из Linux к Windows:


Работаем из PowerShell с Windows-сервером.

В отличие от WS-Man, SSH настраивается намного проще и работает стабильнее. Да и беспарольное подключение по ключам настраивать привычнее.

В хозяйстве пригодится

С однозначным «советом потребителю» все опять сложно: SSH проще в настройке и стабильнее, но WS-Man использует API и позволяет применять инструменты вроде JEA. На боевых серверах использовать WS-Man я бы не стал однозначно, а вот реализация OpenSSH в Windows как сервера, так и клиента мне понравилась. Для самопальной автоматизации вполне подойдет даже без PowerShell.

В любом случае, границы между Linux и Windows хоть и медленно, но начинают стираться, что безусловно радует.

Для подключения к виртуальному Windows-серверу с рабочей станции, управляемой операционной системой семейства Linux, необходимо установить специальное программное обеспечение. В нашем примере мы рассматриваем подключение из Ubuntu. Поэтому нам понадобится клиент удалённого доступа Remmina.

Установка Remmina

Для установки Remmina введите в консоль следующие команды:

$ sudo apt-get update
$ sudo apt-get install remmina remmina-plugin-rdp

Также, установить Remmina можно с применением менеджера пакетов Synaptic:

Менеджер пакетов Synaptic

По окончании установки запустите Remmina. Далее, необходимо произвести настройку подключения к удалённому серверу:

Настройка клиента и подключение к VPS

Настройка заключается в корректном заполнении параметров удалённого рабочего стола.

Параметры удалённого рабочего стола

В поле Сервер внесите IP-адрес виртуального сервера, подключение к которому вы планируете осуществить. Здесь же в соответствующие поля введите имя пользователя и пароль, необходимые для подключения к серверу.

Параметр Глубина цвета задайте таким, чтобы канал подключения не перегружался передачей графики чрезмерного качества. При слишком больших значения данного параметра соединение с удалённым сервером может работать медленно или даже уйти в состояние ошибки.

При настройке подключения есть возможность использовать локальную директорию в качестве папки, расшаренной для вашего сервера. Это может пригодиться для копирования файлов на сервер или, наоборот, с него. В нашем примере используется каталог rdpfiles. Его необходимо указать в поле Общая папка.

По окончании настройки сохраните подключение, присвоив ему определённое имя.

При первом подключении необходимо принять предложенный сертификат:

Сертификат - Как подключиться по RDP из Linux

В случае успешного соединения с удалённым сервером вы получите доступ к его рабочему столу. Директория, которую вы указывали как Общая папка будет доступна в проводнике, наряду с другими ресурсами VPS:

Доступность к общей папки с удалённого сервера

Если же у вашего виртуального сервера отсутствует графический интерфейс, доступ к общему каталогу можно получить при помощи PowerShell. Адрес данной директории будет выглядеть как \\TSCLIENT\rdpfiles.

Следует иметь ввиду, что каталог rdpfiles используется здесь в качестве примера. В вашем случае он может иметь совершенно другое имя. Но при этом данный каталог всё равно будет являться поддиректорией папки \\TSCLIENT.

В определённых случаях общий каталог может монтироваться не совсем корректно, и при подключении удалённый сервер данную директорию не видит. Чтобы папка снова стала доступна для сервера, необходимо полностью отключить Remmina, в том числе нужно выйти из фоновой версии клиента. После чего перезапустите подключение. В большинстве случаев таким образом удаётся восстановить доступность расшаренного каталога.

Для того, чтобы подключиться к виртуальному серверу Windows из операционной системы linux (в данном примере будет Ubuntu), требуется установить клиент удалённого доступа Remmina

sudo apt-get update
sudo apt-get install remmina remmina-plugin-rdp

Либо можно точно так же установить всё это через менеджер пакетов Synaptic:

Менеджер пакетов Synaptic

После установки запускаем remmina и настраиваем подключение к удалённому серверу.

remmina

В поле “Сервер” вписываете ip-адрес вашего сервера, имя пользователя сервера и пароль, который вам выдали при создании.

Параметр “Глубина цвета” следует задать таким, чтобы соединение не тормозило. Часто возникает ошибка, если его поставить слишком большим.

Вы можете копировать фалы из этой сетевой папки в папки на сервере и обратно. Для того, чтобы файлы возможно было копировать на сервер, можно задать общую папку, в данном примере имя папки “rdpfiles”.

Не забываем сохранить подключение, с соответствующим именем.

После первого подключения, вам предложат принять сертификат. Соглашаемся с этим.

remmina подключение

После подключения и всех настроек, можно будет управлять удалённым VPS-сервером. Подключённая папка будет доступна через проводник.

Сетевая папка

Либо, в случае, если у сервера нет графического интерфейса, то через PowerShell по адресу

\\TSCLIENT\rdpfiles

Обратите внимание, что имя папки дано для примера. В вашем случае это имя может быть отличное от “rdpfiles”, но в любом случае это будет подпапка папки \\TSCLIENT .

Из обнаруженных проблем, клиента Remmina – иногда некорректно монтируется удалённая папка и сервер её не видит. Для этого необходимо полностью отключить клиент Remmina (в том числе выйти из фоновой версии программы) и перезапустить её. Тогда подключение работает корректно.

Вам нужен удаленный доступ к настольному компьютеру Linux из Windows? Вот что вам нужно знать о RDP, VNC и SSH для Linux.

Установили сервер Linux? Возможно, вы настроили его как решение для сетевого хранения данных. А может быть, у вас есть рабочий ПК с Linux, медиацентр или вы просто держите дополнительный ПК в другой комнате.

Как бы то ни было, в какой-то момент вам понадобится удаленный доступ к устройству Linux с ПК или ноутбука под управлением Windows. Каково же решение?

У пользователей Windows есть несколько инструментов, которые обеспечивают простой удаленный рабочий стол с Windows на Linux. Хотите узнать, как сделать удаленный рабочий стол с Windows на Linux? Читайте дальше!

Вам понадобится IP-адрес устройства Linux

Перед тем как удаленно подключиться к Linux из Windows, вам понадобится IP-адрес устройства. Он нужен для всех вариантов удаленного подключения, хотя в некоторых случаях достаточно имени хоста (сетевого имени устройства).

Самый простой способ проверить IP-адрес – войти в систему на устройстве Linux и открыть терминал. Введите:

hostname -I

На экране появится IP-адрес устройства. Для получения более подробной информации вы также можете использовать

ip address

Если ваша система Linux имеет несколько соединений, они будут перечислены с префиксами. Например, подключение Ethernet будет перечислено как eth0. Если система подключена к беспроводной сети, ищите IP-адрес, указанный напротив wlan0.

Если это не так просто или неудобно, есть другой способ, который почти так же прост. В окне браузера подключитесь к маршрутизатору. Обычно это адрес 192.168.0.1 или 192.168.0.0. Посмотрите на самом маршрутизаторе или в документации, которая прилагается к нему.

Получение IP-адреса устройства Linux

Получение IP-адреса устройства Linux

Войдя в маршрутизатор, найдите опцию со списком подключенных устройств. Просмотрите IP-адреса, чтобы найти устройство Linux по имени хоста. Некоторые маршрутизаторы могут даже отображать операционную систему устройства. IP-адрес будет указан рядом, его следует записать на будущее.

Первый и самый простой вариант – это RDP, протокол удаленного рабочего стола, который встроен в Windows.

Перед началом работы вам необходимо установить программное обеспечение xrdp на ваш Linux-компьютер. Вы можете сделать это с помощью одной команды:

sudo apt install xrdp

Для RDP в Linux запустите программу Remote Desktop на машине Windows. В Windows 8 и более поздних версиях ее можно найти через Поиск, просто введя буквы “rdp”.

Откройте окно “Подключение к удаленному рабочему столу”:

  • Введите IP-адрес
  • Используйте Показать параметры для любых дополнительных требований к подключению
  • Нажмите кнопку Подключиться

Используйте приложение удаленного рабочего стола Windows

Используйте приложение удаленного рабочего стола Windows

Все очень просто.

Преимущества RDP: несмотря на то, что настройка может занять немного больше времени, использование RDP обеспечивает высокую надежность и удаленный доступ к рабочему столу Linux. Это делает его идеальным инструментом для удаленной работы с машинами Linux.

Если вы планируете использовать RDP на регулярной основе, вы можете сэкономить немного времени, создав эти пользовательские конфигурации для Windows RDP.

Подключение к Linux из Windows с помощью VNC

Виртуальное сетевое подключение (VNC) также позволяет получить удаленный доступ к рабочему столу Linux. Однако, как и в случае с RDP, вам потребуется установить специальное программное обеспечение.

Для Linux требуется серверное программное обеспечение VNC, для Windows – клиентское приложение.

Одним из самых популярных вариантов подключения к Linux через VNC является TightVNC. Клиентское программное обеспечение для Windows вы найдете на сайте, но убедитесь, что выбрали правильную версию.

Скачать: VNC для Windows

После этого установите tightvncserver на свой Linux-компьютер. Это можно сделать через SSH (см. следующий раздел) или с физическим доступом к компьютеру.

Сначала в Linux проверьте наличие обновлений:

sudo apt update

Затем установите TightVNC Server:

sudo apt install tightvncserver

После установки запустите tightvncserver и задайте пароль, когда появится запрос.

sudo tightvncserver

Для паролей существует ограничение в восемь символов. После запуска tightvncserver вы увидите уведомление с номером порта – запишите его.

Как только вы это сделаете, вы сможете подключиться к машине Linux из Windows:

  • Запустите приложение TightVNC Viewer в Windows.
  • Введите IP-адрес и номер порта
  • Нажмите кнопку Подключиться
  • Введите установленный пароль, когда появится запрос

Подключение к Linux из Windows через VNC

Подключение к Linux из Windows через VNC

После этого откроется удаленный рабочий стол, и вы сможете начать использовать выбранное вами приложение – в пределах разумного. Некоторые приложения с высокими графическими требованиями вряд ли будут работать надежно, если вообще будут работать.

Преимущества VNC: предлагая быстрый доступ к удаленному ПК, TightVNC имеет свои ограничения. Вы можете выполнять стандартные вычислительные задачи, но деятельность, связанная с мультимедиа, сильно ограничена.

Удаленный доступ в Linux через SSH

SSH (Secure Shell) – это отличный способ получить удаленный доступ к вашему Linux-устройству. Этот способ не ограничивается Windows, так как SSH можно использовать практически с любого устройства. Он также очень безопасен.

У вас есть два варианта использования SSH в Windows:

  • SSH в Windows PowerShell
  • Скачать инструмент SSH PuTTY

Давайте рассмотрим оба варианта.

Удаленный доступ к Linux с помощью SSH в Windows PowerShell

Windows PowerShell – это новый инструмент командной строки в Windows 10, заменивший старое приложение Command Prompt. Найдите его, щелкнув правой кнопкой мыши “Пуск”, чтобы открыть меню “Питание”, и выберите Windows PowerShell. Чтобы подключиться по SSH, введите:

ssh [IP_ADDRESS].

Так, если устройство Linux имеет IP-адрес 192.168.13.123, введите:

ssh 192.168.13.123
  • Когда появится запрос, примите сертификат
  • Введите имя пользователя и пароль

Теперь у вас есть удаленный SSH-доступ к Linux.

Удаленное подключение к Linux с помощью SSH в PuTTY

Приложение PuTTY можно скачать, хотя оно и недоступно в Windows. Однако PuTTY не устанавливается. Вместо этого вы просто запускаете загруженный EXE-файл.

Скачать: PuTTY (бесплатно)

Для удобства рекомендуется создать ярлык на рабочем столе.

Чтобы использовать PuTTY для SSH:

  • Выберите Сеанс > Имя хоста
  • Введите сетевое имя компьютера Linux или введите IP-адрес, который вы указали ранее.
  • Выберите SSH, затем Открыть
  • Когда появится запрос на принятие сертификата для соединения, сделайте это.
  • Введите имя пользователя и пароль для входа на устройство Linux.

Удаленное подключение к Linux из Windows с помощью PuTTY

Удаленное подключение к Linux из Windows с помощью PuTTY

Преимущества SSH: использование этого метода позволяет быстро вносить изменения в Linux, не пачкая рук. Особенно подходит для установки программного обеспечения и изменения администратора. Он также полезен для настройки следующего варианта, VNC! SSH также идеально подходит для серверов без установленной среды рабочего стола.

Однако если вам нужно удаленное подключение к рабочему столу Linux из Windows, попробуйте VNC или RDP.

Три метода удаленного рабочего стола Windows для подключения к Linux

Независимо от вашей цели, найдется подходящий вариант подключения к машине Linux из Windows. Эти методы работают независимо от того, является ли устройство сервером, настольным ПК на работе, медиацентром или даже Raspberry Pi.

От самого простого к самому сложному – удаленный доступ к Linux из Windows с помощью:

  • RDP (протокол удаленного рабочего стола)
  • VNC (виртуальное сетевое подключение)
  • SSH (Secure Shell)

Если ваш дистрибутив Linux – Ubuntu, у вас уже есть встроенный инструмент удаленного рабочего стола, совместимый с VNC.

Прежде всего, вы можете спросить, зачем нам вообще нужен SSH-сервер на Windows-сервере? В среде Windows SSH может показаться не очень полезным. В конце концов, у нас есть RDP и PowerShell Remoting с WinRM, которые уже обеспечивают мощные возможности удаленного управления. Тем не менее, SSH в Windows определенно имеет свои преимущества. Среди них можно выделить такие вещи, как:

  • Простое подключение и управление Windows-серверами из Linux или MacOS с помощью встроенных инструментов.
  • Подключение из систем Windows к серверам Linux — это простое решение с интегрированным SSH-клиентом. Есть много администраторов Linux, которые должны управлять серверами на работе с помощью ОС Windows, и всегда должны устанавливать некоторые дополнительные инструменты, такие как PuTTY или WinSCP. Теперь они могут использовать знакомые команды SSH прямо из командной строки Windows.
  • Используются те же инструменты удаленного управления для серверов Linux и Windows (SSH, SCP, аутентификация с открытым ключом и т. д.).
  • Кроссплатформенный PowerShell Remoting. PowerShell Core использует SSH для включения удаленного сеанса PowerShell в Windows, MacOS и Linux. В отличие от WinRM PowerShell Remoting — Windows PowerShell работает только на Windows.
  • Вместе с подсистемой Windows для Linux вы можете получить Linux-подобные сеансы SSH с Bash и обычные инструменты Linux также на сервере Windows, который позволяет администраторам Linux использовать свои знания для управления системами Windows.
  • И наоборот: администраторы Windows могут использовать PowerShell для управления сервером Linux, если на нем будет присутствовать соответствующий shell от Microsoft.
  • Просто другой вариант для удаленного управления, который дает еще большую гибкость.

Установка OpenSSH в Windows Server 2019

  • Используя GUI

Открываем SettingsApps & featuresManage optional features:

Раздел apps features=

Нажимаем Add a feature, ищем OpenSSH ServerInstall:

Установка OpenSSH Server

На предыдущем экране дожидаемся окончания процесса инсталляции. OpenSSH сервер можем считать установленным.

Обращаем внимание, что установка этим методом автоматически создаст правило Windows Firewall, с названием «OpenSSH-Server-In-TCP», открывающее 22 порт для входящих подключений.

Используя PowerShell:

Проверим, присутствует ли на нашей системе встроенный OpenSSH:

Get-WindowsCapability -Online | ? Name -like 'OpenSSH*'

В ответ должны получить:

Name : OpenSSH.Client~~~~0.0.1.0
State : NotPresent #или Install, если клиент уже установлен
Name : OpenSSH.Server~~~~0.0.1.0
State : NotPresent

Устанавливаем клиент, если он не установлен:

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

Для установки сервера вводим:

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

В обоих случаях вывод должен быть следующим:

Path :
Online : True
RestartNeeded : False

Первичная конфигурация SSH-сервера

По умолчанию при подключении к OpenSSH-серверу используется командная строка Windows. Вы можете использовать практически любую оболочку на вашем компьютере с Windows через SSH-соединение. Даже возможно использовать Bash, когда подсистема Windows для Linux (WSL) также установлена на целевой машине. Также возможно изменение оболочки по умолчанию на SSH-сервере на нечто иное, чем командная оболочка. Для этого ключ реестра «DefaultShell» необходимо изменить.

Сделать это можно как через редактор реестра regedit.exe, открыв в нем следующий путь: HKEY_LOCAL_MACHINESOFTWAREOpenSSH и изменив в нем параметр DefaultShell, указав в нем полный путь до исполняемого файла необходимой командной строки, например:

C:WindowsSystem32WindowsPowerShellv1.0powershell.exe

Тоже самое можно сделать используя 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

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

После установки функции SSH-сервера нам остается только его запустить:

Start-Service sshd

Опционально можно установить для службы sshd автоматический запуск:

Set-Service -Name sshd -StartupType 'Automatic'

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

Теперь мы готовы к работе и можем подключиться через установленное приложение к нашему хосту. Это можно осуществить либо с Windows 10, компьютера с Linux, с putty.exe на более старой машине с Windows, либо с Bash в настольной операционной системе от Microsoft. Все, что вам нужно, это найти какой-либо SSH-клиент, ввести в него имя пользователя, имя вашего сервера или IP-адрес и подключиться.

Для SSH-клиента в PowerShell синтаксис будет таким:

Ssh username@servername

При первом подключении с неизвестного хоста будет показано следующее сообщение:

Сообщение о том, что хост подключения будет добавлен в список известных хостов сервера

Ответив на него yes, хост подключения будет добавлен в список известных хостов сервера. После чего необходимо ввести пароль пользователя (по соображениям безопасности вводимые символы отображаться не будут). После успешного подключения отобразится интерфейс используемой командной строки:

Windows PowerShell

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

Также, как с сервером OpenSSH в любой системе * nix, вы можете использовать SCP для копирования файлов на сервер или с сервера.
Например, администратор Linux может быстро получить файл журнала с сервера Windows с помощью той же команды, что и для сервера Linux.

scp username@servername:C:/inetpub/logs/LogFiles/W3SVC1/u_ex191017.log u_ex191017.log

Когда вы подключаетесь из Bash/*nix к машине с Windows, нужно помнить, что пути Windows также должны указываться с обычными косыми чертами Unix вместо обратных косых черт. Например, C:/Windows вместо C:Windows.

sshd_config

Аналогично операционным системам семейства Linux, OpenSSH Server в Windows имеет в своем составе особый файл, где хранятся все параметры для выполнения более подробных настроек. Например,  для ограничения входа.

По умолчанию файл конфигурации находится в «%programdata%sshsshd_config».
Самые различные настройки, применимые к этому файлу можно найти на сайте https://man.openbsd.org/sshd_config.

Кроме того, у Microsoft есть документация для специфичных настроек Windows.

Больше информации

Дополнительную информацию об OpenSSH в Windows можно найти на сайте docs.microsoft.com или в проекте GitHub разветвления OpenSSH от Microsoft.

191028
Санкт-Петербург
Литейный пр., д. 26, Лит. А

+7 (812) 403-06-99

700
300

ООО «ИТГЛОБАЛКОМ ЛАБС»

191028
Санкт-Петербург
Литейный пр., д. 26, Лит. А

+7 (812) 403-06-99

700
300

ООО «ИТГЛОБАЛКОМ ЛАБС»

  • Как подключить ubuntu к домену windows
  • Как подключить iphone к компьютеру через usb как модем windows 10
  • Как подключить iso образ в windows 11
  • Как подключить tws наушники к компьютеру windows 11
  • Как подключить ipods к ноутбуку windows