Доступ к серверу linux из windows

В  мире ИТ существует уже довольно широкий спектр операционных систем, начиная с серверных, заканчивая операционными системами для мобильных устройств. В обычных пользовательских компьютерах и в серверах довольно часто используются две ОС — Linux и Windows. Поэтому очень часто возникают ситуации, когда приходится подключаться по сети из одной операционной системы к другой для выполнения разнообразных операций.

В этой статье мы рассмотрим варианты подключения к Linux из Windows. Существуют бесплатные и условно бесплатные утилиты вроде AnyDesk или TeamViewer, но установка их довольно тривиальна и не нуждается в дополнительном пояснении. Утилиты подобного рода обладают рядом ограничений при бесплатном некоммерческом использовании, либо их функциональность не удовлетворяет тем или иным потребностям пользователя. Мы рассмотрим полностью бесплатные способы как подключится к Linux из Windows.

Удалённый доступ к Linux с помощью VNC

На сегодняшний день самое популярное удаленное подключение к Linux из Windows, с использованием привычный в Windows графического интерфейса, является VNC (Virtual Network Computing) — утилита, использующая протокол RFB (Remote FrameBuffer — удалённый кадровый буфер). Управление осуществляется путём передачи нажатий клавиш на клавиатуре и движений мыши с одного компьютера на другой и ретрансляции содержимого экрана через компьютерную сеть.

В качестве сервера VNC в данном примере будет использоваться  TightVNC, установленный в Ubuntu 20.04. Для установки сервера VNC необходимо выполнить ряд действий:

Шаг 1. Установка рабочей среды XFCE

Xfce — одна из самых легковесных рабочих сред, используемых в Linux, она будет быстро работать даже при слабом и нестабильном сетевом подключении. Установите её с помощью команд:

sudo apt update

sudo apt install xfce4 xfce4-goodies

Шаг 2. Установка TightVNC

Далее установите TightVNC:

sudo apt install tightvncserver

Шаг 3. Настройка пароля

Перед началом выполнения всех действий необходимо задать пароль пользователя VNC.  Выполните команду:

vncpasswd

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

Завершите процесс vncserver:

vncserver -kill :1

Шаг 4. Настройка скрипта запуска

Отредактируйте скрипт, который выполняется после запуска VNC-сервера:

nano ~/.vnc/xstartup

Он должен содержать такой текст:

#!/bin/sh
unset SESSION_MANAGER
unset DBUS_SESSION_BUS_ADDRESS
startxfce4 &

Сделайте файл исполняемым:

chmod +x ~/.vnc/xstartup

Шаг 5. Запуск VNC сервера

На этом этапе уже можно запустить VNC-сервер с помощью команды:

vncserver

Шаг 6. Подключение из Windows

Для того, чтобы подключиться из Windows к вашему Linux-серверу, используйте TightVNC Viewer.

Укажите IP-адрес компьютера, к которому нужно подключиться, и номер порта в поле Remote Host. В данном примере — 192.168.56.102::5901:

После того, как будет введён пароль, вы должны увидеть рабочий стол Xfce:

Шаг 8. Настройка systemd

Для того, чтобы запуск вашего VNC-сервера добавить в автозагрузку надо использовать systemd. Создайте новый файл сервиса systemd:

sudo nano /etc/systemd/system/vncserver@.service

Его содержимое должно быть следующим:

[Unit]
Description=Systemd VNC server startup script for Ubuntu 20.04
After=syslog.target network.target
[Service]
Type=forking
User=ubuntu
ExecStartPre=-/usr/bin/vncserver -kill :%i &> /dev/null
ExecStart=/usr/bin/vncserver -depth 24 -geometry 800x600 :%i
PIDFile=/home/ubuntu/.vnc/%H:%i.pid
ExecStop=/usr/bin/vncserver -kill :%i
[Install]
WantedBy=multi-user.target

Измените имя пользователя ubuntu и рабочего каталога ubuntu на нужные вам значения. Если у вас запущен VNC-сервер, остановите его:

vncserver -kill :1

Сообщите systemd о появлении нового сервиса:

sudo systemctl daemon-reload

Добавьте запуск вашего нового сервиса в список автозагрузки:

sudo systemctl enable vncserver@1.service

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

sudo systemctl start vncserver@1

Использование RDP для удалённого подключения

Помимо VNC, для управления Linux-сервером из Windows можно воспользоваться RDP (Remote Desktop Protocol). Для этого на компьютере с Ubuntu 20.04 установите утилиту xrdp:

sudo apt install xrdp

Для корректной работы сервиса необходимо добавить пользователя xrdp в группу ssl-cert:

sudo adduser xrdp ssl-cert

Установите Xfce:

sudo apt-get install xfce4

Добавьте Xfce в сессии RDP в качестве рабочего стола по умолчанию:

echo xfce4-session >~/.xsession

Перезапустите сервис xrdp:

sudo systemctl restart xrdp.service

Процедура подключения из Windows к Linux-серверу по протоколу RDP почти ничем не отличается от подключения к удалённым Windows-серверам. Введите IP-адрес сервера, логин и пароль пользователя в Linux:

Если всё сделано правильно, вы увидите рабочий стол Xfce:

Для подключения к компьютеру под управлением Linux по протоколу SSH из Windows можно воспользоваться PowerShell. Сначала становите OpenSSH Client, если ещё не установлен. Запустите на вашем компьютере PowerShell от имени администратора системы и выполните следующую команду:

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

Это необходимо для того, чтобы узнать текущую версию SSH-клиента. В данном примере доступна версия OpenSSH.Client-0.0.1.0. Установите OpenSSH.Client с помощью команды:

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

Для того, чтобы подключиться к устройству, на котором запущен SSH-сервер, необходимо ввести имя пользователя и IP-адрес. Команда для подключения по SSH используя PowerShell выглядит так:

ssh ubuntu@192.168.56.1

Здесь ubuntu — имя пользователя на удалённом компьютере, а 192.168.56.1 — IP-адрес Linux-сервера, на котором запущен демон SSH.

При первом подключении необходимо подтвердить использование специального персонального ключа для шифрованного соединения по SSH-протоколу (введите слово Yes), затем введите пароль пользователя (в данном случае для пользователя ubuntu):

Как видите, соединение прошло успешно. Теперь можно выполнять все команды так же, как если бы вы их выполняли используя стандартный Linux SSH-клиент:

Для завершения терминальной сессии на удалённом компьютере введите команду exit. Теперь вы знаете как выполняется подключение к Linux из Windows по SSH.

Использование Putty для подключения к Linux

Пожалуй, одним из самых популярных способов подключения к Linux из Windows является кроссплатформенная утилита Putty — небольшая по размерам, но очень часто незаменима для подключения по таким протоколам как SSH, Telnet, rlogin и даже с помощью последовательных портов.

Для обычного подключения к Linux-серверу по протоколу SSH достаточно в поле Host Name (or IPaddress) указать его IP-адрес и нажать кнопку Open (в данном примере Linux-сервер имеет IP-адрес: 192.168.56.102):

При первом подключении Putty предупредит, что используется специальный ключ безопасности и его нужно добавить в доверенные хосты. Нажмите кнопку Да:

Далее нужно будет ввести логин и пароль.  Если всё сделано правильно,  запустится удалённая сессия терминала Linux:

Мало кто знает, что Putty позволяет запустить почти любое приложение, установленное на компьютере с Linux, по сети в Windows. Для этого на компьютере с Windows нужно установить собственный X-сервер. В данном примере воспользуемся Xming.

Скачайте Xming с официального сайта. Установка довольно тривиальная, поэтому не будем на ней останавливаться. Ничего не меняйте в процессе установки. Просто нажимайте кнопку Next до тех пор, пока программа не установится и не запустится:

Когда установка Xming завершится, откройте Putty и в настройках сессии для вашего подключения в разделе SSH -> X11 включите флажок напротив опции Enable X11 forwarding, а также, в строке Отображение дисплея X впишите значение localhost:0, после чего откройте сессию подключения с помощью кнопки Open:

В открывшемся терминале Putty введите консольное название программы, обладающей графическим интерфейсом. В данном примере введено название графического редактора drawing:

drawing &

(Знак & позволит запустить программу в фоновом режиме, в этом случае в окне Putty можно будет выполнять и другие команды):

Как видите, Linux-приложение drawing успешно запустилось по сети на X-сервере, установленном в Windows. С ним можно работать так же, как и с локальным приложением.

Выводы

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

Обнаружили ошибку в тексте? Сообщите мне об этом. Выделите текст с ошибкой и нажмите Ctrl+Enter.

Creative Commons License

Статья распространяется под лицензией Creative Commons ShareAlike 4.0 при копировании материала ссылка на источник обязательна .

Вам нужен удаленный доступ к настольному компьютеру 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.

Представьте, вы находитесь в одной комнате, сидя перед компьютером с Windows; данные, которые вам нужны, находятся в другой, на компьютере под управлением Ubuntu. Если оба компьютера находятся в одном доме, нет проблем; но что, если они находятся в одном офисном блоке?

Зачем удаленно подключаться к Ubuntu из Windows?

Существует несколько причин, по которым вам может понадобиться удаленное подключение к компьютеру Ubuntu. Возможно, вы находитесь на работе и должны войти в свой домашний компьютер. Кроме того, у вас может быть компьютер Ubuntu в одной комнате, компьютер Windows в другой, и желание запускать обновления на Ubuntu.

В качестве альтернативы, возможно, вы используете сервер Ubuntu. Возможно, вы настроили его для управления запуском такой игры, как Counter-Strike или Minecraft. В любом случае, настройка удаленного подключения сэкономит много времени и сил.

У вас есть два варианта установки удаленного соединения с компьютером Ubuntu: вы можете использовать Remote Desktop (RDP) или Virtual Network Computing (VNC).

Давайте рассмотрим каждый метод по очереди.

Узнайте IP-адрес вашего ПК Ubuntu

Прежде чем установить соединение с устройством Ubuntu, необходимо знать IP-адрес.

Первый способ самый простой. Физически подойдите к устройству Ubuntu, нажмите Ctrl + Alt + T, чтобы открыть терминал, и введите команду:

ifconfig

Ищите «inet addr» напротив соединения, которое вы в данный момент используете. Например, если вы пользуетесь Wi-Fi, ищите wlan0. Если компьютер подключен к сети для Ethernet, ищите eth0.

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

Ни один из этих вариантов не можете открыть? Вы также можете подключиться к маршрутизатору напрямую, через браузер вашего компьютера.

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

1. Подключение по SSH

Перед началом работы, возможно, вы захотите установить PuTTY на ваш компьютер (или просто попробовать встроенную функцию Windows SSH). Это позволит вам установить SSH-соединение, которое дает удаленный доступ к командной строке Ubuntu.

Чтобы было понятно: это не опция удаленного рабочего стола, так как нет управления мышью. Но полезно иметь для удаленной установки инструменты, которые вы будете использовать. Однако SSH часто отключен по умолчанию, так что если он не установлен, вам придется это исправить.

Короче говоря, это зависит от того, какую версию Ubuntu вы используете и использовали ли вы SSH ранее.

После установки через терминал (sudo apt install openssh-server) вы сможете установить удаленное соединение (просто используя IP-адрес и имя пользователя и пароль Ubuntu) и использовать терминал для установки необходимых инструментов для RDP и для VNC.

2. Удаленный доступ с помощью протокола удаленного рабочего стола

Самым простым вариантом является использование протокола Remote Desktop Protocol или RDP. Встроенный в Windows, этот инструмент можно использовать для создания подключения к удаленному рабочему столу в вашей домашней сети. Все, что вам нужно, это IP-адрес устройства Ubuntu.

В то время как необходимое программное обеспечение предустановлено на Windows, вам нужно будет установить инструмент xrdp на Ubuntu. Для этого откройте окно терминала (Ctrl + Alt + T) и введите:

sudo apt install xrdp

Затем:

sudo systemctl enable xrdp

Подождите, пока он установится, затем запустите приложение Remote Desktop в Windows с помощью меню «Пуск» или «Поиск». Введите rdp и нажмите на Remote Desktop Connection (Подключение к удаленному рабочему столу). Когда приложение будет открыто, введите IP-адрес в поле Компьютер.

Затем нажмите кнопку Показать опции и добавьте имя пользователя для Ubuntu PC. Вы можете нажать Сохранить, чтобы сохранить эти настройки для повторного использования в следующий раз.

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

Устранение проблем с RDP

Хотя RDP является отличным вариантом для удаленного подключения к компьютеру Ubuntu, с приходом Ubuntu 18.04 LTS, такой способ менее надежен. Похоже, что существует проблема с установлением удаленного соединения, когда в учетной записи уже выполнен вход на машине Ubuntu.

Таким образом, простой способ обойти это — просто выйти из пользователя.

Если это невозможно, попробуйте переключить RDP-соединение с использования сервера Xorg на использование X11rdp, подождите, пока это не сработает, а затем снова попробуйте Xorg.

Вы также можете попытаться установить соединение после перезагрузки машины с Linux.

3. Удаленный доступ с помощью виртуальной сети (VNC)

Другой вариант с полной функциональностью удаленного рабочего стола — VNC (Virtual Network Computing). Для этого требуется клиентское приложение на ПК с Windows и сервер на Ubuntu.

На удаленном ПК установите компонент TightVNC Server после проверки обновлений:

sudo apt update

Установите сервер:

sudo apt install tightvncserver

И запустите:

sudo tightvncserver

На этом этапе вам будет предложено установить пароль для подключения. Вам также будет присвоен номер рабочего стола, обычно :1. Запишите это.

Теперь, когда TightVNC Server настроен на Ubuntu, вам нужно будет установить клиент на Windows. Его можно скачать с сайта www.tightvnc.com/download.php — убедитесь, что вы выбрали правильную версию, так как она доступна в 32-битном и 64-битном варианте.

Инструменты TightVNC доступны только в комплекте, поэтому после установки ищите TightVNC Viewer в поиске Windows.

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

192.168.0.99:1

Введите пароль при запросе и начните работу на удаленном рабочем столе!

Делаем TightVNC более безопасным

По умолчанию TightVNC зашифрует ваш пароль, но больше ничего. Это делает его небезопасным для подключений через интернет. К счастью, его можно сделать более безопасным, благодаря SSH и Xming.

Для этого скачайте и установите инструмент Xming для Windows из Sourceforge. После этого найдите ярлык рабочего стола, щелкните правой кнопкой мыши и выберите Properties (Свойства).

Ищите вкладку Shortcut, а в поле Target введите следующее:

"C:\Program Files (x86)\Xming\Xming.exe" :0 -clipboard -multiwindow

Нажмите кнопку Применить, чтобы сохранить изменения, затем OK. Дважды щелкните значок, чтобы запустить Xming, затем откройте PuTTY. Здесь разверните меню слева до Connection > SSH > X11.

Установите флажок Включить переадреcацию X11, затем вернитесь к сеансу (Session) в верхней части меню.

Введите IP-адрес удаленного устройства и нажмите кнопку Открыть. Через несколько секунд будет доступно защищенное соединение с удаленным рабочим столом Ubuntu.

Выбор правильного решения для удаленного доступа

Как вы используете эти методы, зависит от того, что вы хотите получить от вашего удаленного рабочего стола.

Доступны три основных варианта:

  • RDP: Он использует протокол Windows Remote Desktop Protocol, через реализацию xrdp с открытым исходным кодом.
  • VNC: Виртуальные сетевые вычисления являются альтернативой RDP, но менее безопасны.
  • VNC через SSH: смешивание VNC с SSH повышает безопасность соединения.

Вы также можете использовать SSH для управления терминалом на вашем компьютере Ubuntu.

Мы показали вам три способа установить удаленное соединение с вашим компьютером Ubuntu или сервером из Windows. Каждый из них имеет свои преимущества и недостатки. Но если вы просто хотите быстро окунуться в Ubuntu, почему бы не попробовать подсистему Windows для Linux, доступную в Windows 10?

Безлимитные тарифы интернета с высокой скоростью соединения упростили администрирование компьютеров. Сегодня все чаще помощь пользователям оказывается удаленно. Это удобно, ведь не надо тратить время на поездки и возможность подключиться есть практически круглосуточно.

Сегодня поговорим об удаленном подключении к Ubuntu из ОС Windows. 

Зачем удаленно подключаться из Windows к Ubuntu

Не так важно, где находится удаленный компьютер – в соседней комнате или в другом регионе. Интернет убирает подобные ограничения, главное – чтобы связь оставалась стабильной на все время настройки. Это одинаково относится к машинам, работающим хоть на операционной системе Windows, хоть на Ubuntu. Последние используются, например, для развертывания сервера CS или Minecraft.

Причины, по которым требуется удаленное подключение:

  1. ручной запуск обновлений на компьютере с Ubuntu;
  2. настройка системы без подключения локального монитора, клавиатуры;
  3. работа с машиной, расположенной по другому адресу.

Пользователю доступно три варианта коннекта с компьютеров, работающих на ОС Windows. Выбор зависит от удобства и предпочтений: SSH через приложение PuTTY, встроенная поддержка RDP и виртуальная сеть VNC (понадобится предварительная настройка клиента). В любом случае перед работами понадобится выяснить IP-адрес компьютера, к которому предстоит подключаться.

Комьюнити теперь в Телеграм

Подпишитесь и будьте в курсе последних IT-новостей

Подписаться

Как выяснить IP-адрес компьютера с установленной ОС Ubuntu

Если есть физический доступ к компьютеру с установленной Ubuntu, на нем открывается терминал (комбинация клавиш Ctrl+Alt+T) и вводится команда ifconfig. В отображенном перечне данных имеет значение строка, начинающаяся с inet addr. Если используется подключение через Wi-Fi, то рядом будет его маркер в виде «wlan0». При проводном соединении фраза будет заменена на «eth0». Рядом отображается актуальный IP-адрес машины.

Второй способ заключается в применении функций графического интерфейса. Последовательность действий: найти значок подключения на панели, кликнуть правой кнопкой мышки, выбрать пункт «Сведения о подключении». Там и указан постоянный IP-адрес компьютера. Если доступа к нему нет, то можно выяснить данные через маршрутизатор. В панели управления отображаются активные пользователи вместе с их «контактами».

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

Перед подключением на компьютер с Windows устанавливается приложение PuTTY. Это популярный инструмент для организации SSH-соединения, которое предоставит удаленный доступ к командной строке Ubuntu. Важно понимать, что этот режим требует определенного опыта в управлении, ведь здесь нет привычной мыши и «окошек», а все команды передаются в текстовом виде. Отчеты предоставляются в таком же виде.

Putty

По умолчанию возможность коннекта через SSH в Ubuntu отключена. Так что предварительно эту систему требуется настроить. Активация функции выполняется вводом команды sudo apt install openssh-server (в той же консоли, где ранее был взят IP-адрес). Логин и пароль подключения будут те же, что используются при входе в операционную систему.

Из-за неудобства управления в текстовой среде этот вариант востребован для удаленной активации более удобных инструментов. Например, тех же протоколов RDP или VNC. В них также пригодится IP-адрес, поэтому получить минимальные навыки работы в консоли все равно рекомендуется. Это упростит решаемые задачи, если по каким-то причинам не удается соединение в других режимах.

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

Способ подключения через службу Remote Desktop Protocol (RDP) распространен при работе с машинами на платформе Windows. Популярность инструмента объясняется просто – его поддержка встроена во все виды и версии операционных систем. Все, что понадобится для подключения, уже известно: это IP-адрес, логин и пароль от Ubuntu. Запускается утилита через поиск, называется она «Подключение к рабочему столу».

RDP

На компьютере-клиенте требуется установка приложения xrdp.

  1. Необходимо открыть окно термина нажатием комбинации клавиш Ctrl+Alt+T.
  2. Ввести текстовую команду sudo apt install xrdp и нажать «Ввод».
  3. Провести активацию программы командой sudo systemctl enable xrdp.

После установки надо ввести на компьютере-сервере данные доступа и нажать кнопку «Подключить». Если поставить галочку «Разрешить мне сохранять учетные данные», последующие входы будут выполняться без дополнительных вопросов. Но в первый раз пароль всегда вводится вручную. При желании создается отдельный конфигурационный файл (востребовано, когда много компьютеров с удаленным управлением).

После подключения пользователь видит рабочий стол компьютера на Ubuntu. Работа с его окнами не отличается от локального управления – функционируют все настроенные горячие клавиши, перетаскивание мышью. В некоторых версиях Ubuntu, например, 18.04 LTS, RDP не работает, пока не выйдешь из текущего пользователя. Подобные фишки обычно известны системным администраторам.

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

Есть другой вариант удаленного рабочего стола – сеть Virtual Network Computing (VNC). Она тоже требует предварительной настройки обеих машин. Так, на компьютер с Ubuntu инсталлируется ПО, открывающее доступ к управлению.

Последовательность действий:

  1. Открыть окно терминала.
  2. Ввести команду sudo apt update.
  3. Установить сервер: sudo apt install tightvncserver.
  4. Активировать его: sudo tightvncserver.

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

На этом все! TightVNC Server готов к работе, остается следом настроить компьютер на Windows. Программа доступна на официальном сайте разработчика в двух версиях: 32 и 64-бит.

VNC

После инсталляции и запуска достаточно ввести IP-адрес хоста и пароль доступа, введенный после активации сервера на Ubuntu. Схема работы VNC аналогична предыдущему примеру: пользователь видит перед собой удаленный рабочий стол и управляет функциями операционной системы, как будто сидит за компьютером локально.

Время на прочтение
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
  • Дополнительные средства обработки сигнала в windows 10 что это
  • Доступ к windows каталогу из linux
  • Доступ к папке program files windows 10
  • Дополнительные средства обработки звука windows 10 что это