В мире ИТ существует уже довольно широкий спектр операционных систем, начиная с серверных, заканчивая операционными системами для мобильных устройств. В обычных пользовательских компьютерах и в серверах довольно часто используются две ОС — 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 IP—address) указать его 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 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-адрес будет указан рядом, его следует записать на будущее.
Первый и самый простой вариант – это RDP, протокол удаленного рабочего стола, который встроен в Windows.
Перед началом работы вам необходимо установить программное обеспечение xrdp на ваш Linux-компьютер. Вы можете сделать это с помощью одной команды:
sudo apt install xrdp
Для RDP в Linux запустите программу Remote Desktop на машине Windows. В Windows 8 и более поздних версиях ее можно найти через Поиск, просто введя буквы “rdp”.
Откройте окно “Подключение к удаленному рабочему столу”:
- Введите IP-адрес
- Используйте Показать параметры для любых дополнительных требований к подключению
- Нажмите кнопку Подключиться
Все очень просто.
Преимущества 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-адрес и номер порта
- Нажмите кнопку Подключиться
- Введите установленный пароль, когда появится запрос
После этого откроется удаленный рабочий стол, и вы сможете начать использовать выбранное вами приложение – в пределах разумного. Некоторые приложения с высокими графическими требованиями вряд ли будут работать надежно, если вообще будут работать.
Преимущества 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.
Преимущества SSH: использование этого метода позволяет быстро вносить изменения в Linux, не пачкая рук. Особенно подходит для установки программного обеспечения и изменения администратора. Он также полезен для настройки следующего варианта, VNC! SSH также идеально подходит для серверов без установленной среды рабочего стола.
Однако если вам нужно удаленное подключение к рабочему столу Linux из Windows, попробуйте VNC или RDP.
Три метода удаленного рабочего стола Windows для подключения к Linux
Независимо от вашей цели, найдется подходящий вариант подключения к машине Linux из Windows. Эти методы работают независимо от того, является ли устройство сервером, настольным ПК на работе, медиацентром или даже Raspberry Pi.
От самого простого к самому сложному – удаленный доступ к Linux из Windows с помощью:
- RDP (протокол удаленного рабочего стола)
- VNC (виртуальное сетевое подключение)
- SSH (Secure Shell)
Если ваш дистрибутив Linux – Ubuntu, у вас уже есть встроенный инструмент удаленного рабочего стола, совместимый с VNC.
Для настройки и управления удаленными серверами на базе Linux обычно используется протокол SSH. С помощью SSH на удаленный компьютер можно передавать данные и команды, которые будут выполняться так как бы они выполнялись на локальной машине.
В этой инструкции мы рассмотрим процесс подключения к SSH из Windows 10. Первый способ будет актуален для Windows 10 версии 1809 и выше, а второй можно использовать как на Windows 10, так и на Windows 7.
Подключение по SSH с помощью OpenSSH
Раньше для подключения к Linux серверу по SSH из Windows компьютера требовалась установка программы PuTTy или какого-то другого SSH-клиента. Но, в операционной системе Windows 10 (начиная с версии 1809) доступен клиент OpenSSH, с помощью которого можно подключаться к Linux серверам по SSH. Это позволяет работать с терминалом Linux прямо из командной строки Windows 10, при этом не требуется установка никаких сторонних программ.
Перед тем как использовать данный способ подключения необходимо проверить версию Windows 10. Для этого нажмите комбинацию клавиш Win-R и выполните команду «winver». Если на вашем компьютере установлена Windows 10 с версией 1809 или выше, то все нормально, в противном случае сначала нужно выполнить обновление.
Также нужно открыть меню «Параметры» и зайти в раздел «Приложения – Дополнительные возможности».
Здесь нужно пролистать список установленных дополнительных компонентов и найти в нем «Клиент OpenSSH». Если такой компонент присутствует, значит все нормально и можно переходить к следующему шагу. Если нет, то его нужно сначала установить с помощью меню «Добавить компонент».
Обратите внимание, не нужно путать «Клиент OpenSSH» и «Сервер OpenSSH». Для подключения по SSH вам нужен именно клиент.
Также клиент OpenSSH можно установить с помощью PowerShell. Для этого запустите консоль PowerShell с правами администратора и выполните следующую команду:
Add-WindowsCapability -Online -Name OpenSSH.Client~~~~0.0.1.0
Более подробно об установке и удалении клиента OpenSSH можно почитать в официальной документации Майкрософт.
Если версия Windows 10 подходящая и клиент OpenSSH установлен, то можно начинать подключение по SSH. Для этого запустите обычную командную строку Windows и введите команду «ssh». В ответ вы должны получить информацию о работе с данной командой.
В общем случае синтаксис команды «ssh» выглядит следующем образом:
ssh user@server
Где «user» — это имя пользователя на удаленном сервере, а «server» — это имя компьютера или его ip адрес.
Например, если наш сервер доступен по ip адресу «192.168.1.214», а имя пользователя это «aleks», то команда для подключения будет выглядеть так:
ssh [email protected]
После ввода данной команды появится запрос пароля и после этого мы получим доступ к удаленному серверу. Также при первом подключении с помощью ssh будет появляться запрос на добавление сервера в список известных.
По умолчанию для SSH используется порт 22. Для того чтобы это изменить нужно использовать параметр «-p». Например, для подключения по порту 2222 нужно выполнить вот такую команду.
ssh [email protected] -p 2222
Если подключение предполагает использование ключей, то они должны находиться в папке «C:\Users\user\.ssh». А при подключении путь к приватному ключу нужно указать с помощью параметра «-i». Например, чтобы использовать ключ «C:\Users\stepu\.ssh\id_rsa» нужно выполнить:
ssh [email protected] -i C:\Users\stepu\.ssh\id_rsa
Более подробную информацию о команде «ssh» и ее параметрам можно получить на сайте man.openbsd.org/ssh или на opennet.ru (перевод).
Подключение по SSH через PuTTY
В тех случаях, когда версия Windows 10 не поддерживает OpenSSH (или используется Windows 7) к SSH можно подключаться с помощью программы PyTTY. Скачать установщик данной программы можно на официальном сайте www.putty.org.
После установки программы PyTTY ее можно будет запустить с помощью поиска в меню «Пуск»
Сразу после запуска программы PuTTY появляется окно с настройками подключения. Основными параметры здесь находятся на вкладке «Session», здесь нужно ввести:
- Имя компьютера или IP адрес;
- Порт для подключения (по умолчанию, 22);
- Способ подключения (SSH);
После ввода этих данных можно запускать подключение с помощью кнопки «Open».
Если для подключения к SSH используются ключи, то путь к приватному ключу нужно указать в разделе «Connection – SSH – Auth».
Обратите внимание, ключ должен быть сгенерирован программой PuTTYgen, которая устанавливается вместе с PuTTY. Если вы сгенерировали ключи с помощью OpenSSH, то их можно загрузить в PuTTYgen и сохранить в формате подходящем для PuTTy.
Если информация для подключения правильная, то вы увидите консоль с запросом на ввод имени пользователя пароля. Также при первом запуске появится запрос на добавление компьютера в список известных.
После ввода этих данных вы будете подключены к удаленному серверу по SSH.
Посмотрите также:
- Как удалить папку в Linux через терминал (консоль)
- Как открыть файл в терминале Linux
- Как создать файл в Linux через терминал
- Как скопировать файл в Linux через терминал
- Как удалить файл в Linux через терминал
Автор
Александр Степушин
Создатель сайта comp-security.net, автор более 2000 статей о ремонте компьютеров, работе с программами, настройке операционных систем.
Остались вопросы?
Задайте вопрос в комментариях под статьей или на странице
«Задать вопрос»
и вы обязательно получите ответ.
Безлимитные тарифы интернета с высокой скоростью соединения упростили администрирование компьютеров. Сегодня все чаще помощь пользователям оказывается удаленно. Это удобно, ведь не надо тратить время на поездки и возможность подключиться есть практически круглосуточно.
Сегодня поговорим об удаленном подключении к Ubuntu из ОС Windows.
Зачем удаленно подключаться из Windows к Ubuntu
Не так важно, где находится удаленный компьютер – в соседней комнате или в другом регионе. Интернет убирает подобные ограничения, главное – чтобы связь оставалась стабильной на все время настройки. Это одинаково относится к машинам, работающим хоть на операционной системе Windows, хоть на Ubuntu. Последние используются, например, для развертывания сервера CS или Minecraft.
Причины, по которым требуется удаленное подключение:
- ручной запуск обновлений на компьютере с Ubuntu;
- настройка системы без подключения локального монитора, клавиатуры;
- работа с машиной, расположенной по другому адресу.
Пользователю доступно три варианта коннекта с компьютеров, работающих на ОС 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. Важно понимать, что этот режим требует определенного опыта в управлении, ведь здесь нет привычной мыши и «окошек», а все команды передаются в текстовом виде. Отчеты предоставляются в таком же виде.
По умолчанию возможность коннекта через SSH в Ubuntu отключена. Так что предварительно эту систему требуется настроить. Активация функции выполняется вводом команды sudo apt install openssh-server (в той же консоли, где ранее был взят IP-адрес). Логин и пароль подключения будут те же, что используются при входе в операционную систему.
Из-за неудобства управления в текстовой среде этот вариант востребован для удаленной активации более удобных инструментов. Например, тех же протоколов RDP или VNC. В них также пригодится IP-адрес, поэтому получить минимальные навыки работы в консоли все равно рекомендуется. Это упростит решаемые задачи, если по каким-то причинам не удается соединение в других режимах.
Подключение из Windows через RDP
Способ подключения через службу Remote Desktop Protocol (RDP) распространен при работе с машинами на платформе Windows. Популярность инструмента объясняется просто – его поддержка встроена во все виды и версии операционных систем. Все, что понадобится для подключения, уже известно: это IP-адрес, логин и пароль от Ubuntu. Запускается утилита через поиск, называется она «Подключение к рабочему столу».
На компьютере-клиенте требуется установка приложения xrdp.
- Необходимо открыть окно термина нажатием комбинации клавиш Ctrl+Alt+T.
- Ввести текстовую команду sudo apt install xrdp и нажать «Ввод».
- Провести активацию программы командой sudo systemctl enable xrdp.
После установки надо ввести на компьютере-сервере данные доступа и нажать кнопку «Подключить». Если поставить галочку «Разрешить мне сохранять учетные данные», последующие входы будут выполняться без дополнительных вопросов. Но в первый раз пароль всегда вводится вручную. При желании создается отдельный конфигурационный файл (востребовано, когда много компьютеров с удаленным управлением).
После подключения пользователь видит рабочий стол компьютера на Ubuntu. Работа с его окнами не отличается от локального управления – функционируют все настроенные горячие клавиши, перетаскивание мышью. В некоторых версиях Ubuntu, например, 18.04 LTS, RDP не работает, пока не выйдешь из текущего пользователя. Подобные фишки обычно известны системным администраторам.
Подключение через VNC
Есть другой вариант удаленного рабочего стола – сеть Virtual Network Computing (VNC). Она тоже требует предварительной настройки обеих машин. Так, на компьютер с Ubuntu инсталлируется ПО, открывающее доступ к управлению.
Последовательность действий:
- Открыть окно терминала.
- Ввести команду sudo apt update.
- Установить сервер: sudo apt install tightvncserver.
- Активировать его: sudo tightvncserver.
Система предложит ввести пароль для подключения. Он понадобится при активации удаленного соединения, поэтому стоит записать (запомнить) внесенные данные.
На этом все! TightVNC Server готов к работе, остается следом настроить компьютер на Windows. Программа доступна на официальном сайте разработчика в двух версиях: 32 и 64-бит.
После инсталляции и запуска достаточно ввести IP-адрес хоста и пароль доступа, введенный после активации сервера на Ubuntu. Схема работы VNC аналогична предыдущему примеру: пользователь видит перед собой удаленный рабочий стол и управляет функциями операционной системы, как будто сидит за компьютером локально.
Время на прочтение
5 мин
Количество просмотров 67K
Итак, друзья, некоторое подмножество нас (людей) так или иначе испытавает необходимость удаленного управления компьютером (как правило, сервером) на linux (способ может сработать и в BSD, и в Mac OS X, но я не пробовал) при помощи ssh. Другое подмножество использует Windows в качестве ОС на основной рабочей машине. К пересечению этих подмножеств обращена моя статья.
Полезности, ради которых затевается всё вселье:
1. Сохранение подключения при обрыве связи. Этот пункт для меня самый важный и сыграл решающую роль в том, чтобы взяться за настройку такой системы. Дело в том, что я живу в общежитии с очень-очень нестабильным интернетом, и обрывы связи у меня (в плохие дни) могут происходить поминутно. А putty требует последовательности действий, чтобы переподключиться каждый раз
2. Сохранение сессии, включая текущую директорию, историю команд и вывода. Зачастую, единственной задачей при подключении к серверу стоит: зайти в одну и ту же директорию и написать git pull. Чтобы каждый раз не вспоминать путь к этой директории, нужно сохранение сессии
3. Терминал поддерживает вкладки. Самое главное, что данный терминал можно использовать также и для cmd, и для PS, и для git bash консоли. Поэтому не придется держать несколько разных терминалов открытыми.
4. Плюсы tmux: многооконность в одной сессии и split
Рецепт успеха будет включать несколько пунктов:
- Терминал — ConEmu code.google.com/p/conemu-maximus5
- Менеджер сессий — tmux tmux.sourceforge.net
- Коннектор между клиентом и сервером — mosh mosh.mit.edu
- Запуск *nix приложений под windows — cygwin www.cygwin.com
Так же для проведения всех манипуляций нам также понадобится подобный набор софта:
- Putty или другой ssh клиент;
- Удаленный сервер (я использую ubuntu на aws, хотя это не имеет существенного значения).
Что мы получим в итоге?
В итоге мы получим терминал с возможностью доступа к удаленной консоли. При обрыве соединения (обрыве интернета, смене ip-адреса, изменении маршрутизации, неустойчивом соединении, засыпании ноутбука etc) не придется переподключаться, а при переподключении не будет теряться контекст работы.
Теперь подробно.
Конфигурация
Настраивать нашу систему мы будем поэтапно, начнем с удаленного сервера. Подключаемся к нему по ssh и ставим…
Tmux
Tmux — менеджер сессий, как говорится, screen на стероидах. К моему дистрибутиву tmux уже шел в комплекте, а если нет, то ставим его:
sudo apt-get install tmux
Или же собираем из исходников:
git clone git://git.code.sf.net/p/tmux/tmux-code tmux
cd tmux
sh autogen.sh
./configure && make
Краткая шпаргалка по tmux
Скопировано из http://habrahabr.ru/post/126996/
Очень хороший способ запустить tmux:
tmux attach || tmux new — делая так, вы сперва пытаетесь подключиться к уже существующему серверу tmux, если он существует; если такого ещё нет — создаёте новый.
После этого вы попадаете в полноценную консоль.
Ctrl+b d — отключиться. (Точно так же вы отключитесь, если прервётся соединение. Как подключиться обратно и продолжить работу — см. выше.)
В одной сессии может быть сколько угодно окошек:
Ctrl+b c — создать окошко;
Ctrl+b 0…9 — перейти в такое-то окошко;
Ctrl+b p — перейти в предыдущее окошко;
Ctrl+b n — перейти в следующее окошко;
Ctrl+b l — перейти в предыдущее активное окошко (из которого вы переключились в текущее);
Ctrl+b & — закрыть окошко (а можно просто набрать exit в терминале).
В одном окошке может быть много панелей:
Ctrl+b % — разделить текущую панель на две, по вертикали;
Ctrl+b » — разделить текущую панель на две, по горизонтали (это кавычка, которая около Enter, а не Shift+2);
Ctrl+b →←↑↓ — переходить между панелями;
Ctrl+b x — закрыть панель (а можно просто набрать exit в терминале).
Недостаток — непривычным становится скроллинг:
Ctrl+b PgUp — вход в «режим копирования», после чего:
PgUp, PgDown — скроллинг;
q — выход из «режима копирования».
В конфиг, который находится в ~/.tmux.conf, добавляем следующее:
new-session
set-window-option -g mode-mouse on
set -g history-limit 25000
В первой строчке значится, что при попытке подключения, если нет активной сессии, создаётся новая. Вторая строчка включает поддержку мыши, а третья задаёт размер истории.
Mosh
Mosh в нашей связке — это система, которая обеспечивает бесперебойность соединения. При обрыве соединения программа ждет, пока connectivity восстановится и продолжает работу с места остановки. Так же помогает и при медленном/нестабильном соединении.
Устанавливаем из исходников, чтобы получить версию, которая поддерживает все нужные фичи:
git clone https://github.com/keithw/mosh.git
cd mosh/
sudo apt-get build-dep mosh
./autogen.sh && ./configure && make
sudo make install
Специальная конфигурация не требуется.
Cygwin
Теперь переходим к клиентской части.
Cygwin — альтернативная реализация linux api, которая позволяет использовать linux утилиты из-под windows. Ставится с официального сайта (https://cygwin.com/install.html). У меня стоит версия x86_64. Скачиваем, ставим.
При выборе пакетов (помимо основных) нужно отметить mosh и ssh:
Конфигурация не требуется.
ConEmu
Последний пункт — ConEmu. Замечательный терминал под windows. Поддерживает кучу возможностей, таких как:
- вкладки и split-scren’ы;
- работа с консольными приложениями, использующими консольное API;
- гибкая настройка и управление;
- работа с цветами;
- … и многое другое, подробно про этот терминал можно почитать в статье разработчика.
ConEmu ставится с официального сайта. Скачиваем, ставим (или распаковываем), запускаем. При первом запуске оставляем галочки стоять на местах. Открываем настройки по Win+Alt+P. Нас интересует пункт Tasks.
Вот как выглядит задача запуска cygwin:
Создайте такой пункт у себя, при этом, вам, возможно, придется заменить путь на ваш путь установки:
C:\cool\cygwin64\bin\mintty.exe -i /Cygwin-Terminal.ico -
Сохраняем, закрываем настройки, выбираем наш cygwin в выпадающем меню рядом с плюсиком в правом верхнем углу.
Теперь нам нужно добиться подключения по ssh к нашему серверу.
У меня команда выглядит так:
ssh -i key2014.pem -p 22
key2014.pem — мой ssh приватный ключ доступа к инстансу в aws. Возможно, его стоит скопировать с диска windows (который монтируется в /cygdrive) в корневую папку.
Следующий этап — подключение через Mosh:
mosh <username>@<hostname> --ssh=\"ssh -i key2014.pem -p 22\" -p 55505 -- tmux a
55505 — UDP порт, который я предварительно открыл для входящих соединений в правилах безопасности в админке aws. Теперь все соединения будут вестись только через него (помимо начального установления связи — оно идёт через 22 порт).
tmux a — команда, которая выполняется при подключении к серверу (attach к работающей сессии tmux).
Проверяем. Работает? Великолепно! Последняя задача — создать новый Task в ConEmu.
Конкретно:
C:\cool\cygwin64\bin\mintty.exe -i /Cygwin-Terminal.ico /bin/bash -l -c "mosh <username>@<hostname> --ssh=\"ssh -i key2014.pem -p 22\" -p 55505 -- tmux a"
Думаю, всё понятно. Обратите внимание на слеши перед кавычками. Они отличают степень вложенности кавычек.
Ну вот, пожалуй и всё. Теперь, когда мы хотим подключиться к серверу, запускаем ConEmu, тыкаем по стрелочке рядом с плюсиком и выбираем наш Task.
Дополнение
Еще одно упрощение, которое я использую — я добавил все необходимые мне Task’и для вызова напрямую из Totcmd:
Обычная cmd:
Подключение к aws:
P. S.
Предлагаю всем, дочитавшим эту статью, высказывать предложения, что еще такого можно включить в эту схему. Спасибо за внимание.
P. P. S.
Данная статья является компиляцией других статей, взятых из разных мест и собственных наработок. Единственная статья, которую я помню — http://xakep.ru/komfort-shell/
UPD 2022: хоть статье и много лет, и я уже давно пользуюсь linux — трюк из mosh+tmux все еще актуален