марта 25 2008 11:59 дп

Удаленное подключение к рабочему столу Linux из Windows с помощью Xming и SSH

Иногда приходится пользоваться тем, что дали. Мой компьютер, на котором стоит Debian Linux, был занят моей женой (не учите своих жен пользоваться линуксом). Зато был свободен компьютер сестры с установленным на нем Windows. И вот появилось желание подключиться к своему компьютеры с рабочей станции под управлением враждебной OS. Первым, что пришло в голову — это удаленный рабочий стол. Однако, нашлось более элегантное решение. И, несмотря на заголовок статьи, речь пойдет о немного другой технологии.

Взгляните на этот снимок:

Вы видите приложения Linux прямо на рабочем столе Windows! Как же они туда попали?

Немного о теории. В отличие от Windows, в Linux графическая оболочка не является частью ядра системы. Стандартная оконная система для Linux — это X Window System, или, попросту говоря, иксы. Она берет на себя отрисовку графических элементов и взаимодействие с устройствами ввода-вывода. А самое вкусное заключается в том, что эта система имеет прозрачную клиент-серверную архитектуру. Оконная система выполняет роль сервера, а графические приложения — роль клиентов. Как и положено клиентам, они подключаются к серверу и взаимодействуют с ним для отрисовки и для получения событий мыши и клавиатуры.

Но это еще не все! Дело в том, что оконная система может находиться на другом компьютере, а графическое приложение связываться с ней через сеть. Так вы можете запустить приложение на удаленном компьютере, заставив его рисоваться на том компьютере, за которым сейчас работаете. Или наоборот. Или запустить программу на одном удаленном компьютере с отрисовкой интерфейса на другом удаленном компьютере. Заманчивая возможность, неправда ли? :-)

Думаю, достаточно теории, давайте приступим к практике.

Для начала подготовим удаленный компьютер Debian Linux. Все, что нам здесь нужно — это SSH-сервер. Через него мы будем подключаться удаленно и запускать нужные нам программы. Выполняем всего одну команду в консоли:

$ sudo apt-get install openssh-server

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

1. SSH-клиент. Я установил PuTTY.
2. X Server для Windows. Я выбрал Xming.

Обе программы можно загрузить с сайта SourceForge (пакеты Xming и Xming-portable-PuTTY). Также по желанию можно загрузить стандартный набор шрифтов (пакет Xming-fonts). Все, что загрузили — устанавливаем (с полной установкой всех компонент Xming), и переходим к настройке. Теперь главное не запутаться, что к чему будем подключать :-)

Для начала установим соединение по SSH с удаленным компьютером. Для этого запускаем PuTTY. Вводим IP-адрес компьютера Linux.


Теперь переходим в раздел Connection / SSH / X11 и включаем перенаправление графического интерфейса. В качестве расположения X-сервера водим IP-адрес компьютера Windows, за которым сейчас сидим.


Кроме того, чтобы вместо русских букв не всплыли крокозябли, желательно в разделе Window / Translation установит правильную кодировку (у меня — UTF8 — стандартная кодировка на Debian и Ubuntu). Возвращаемся в раздел Session, сохраняем настройки и подключаемся к компьютеру Linux. В случае успешного подключения мы вводим логин и пароль и видим текстовую консоль. С ее помощью мы можем удаленно запустить консольные программы, но графические программы не могут рисоваться в консоли. Поэтому оставим на время наше подключение по SSH.

Теперь настроим Xming. Для этого запускаем программу XLaunch — это мастер настроек. На первом шаге указываем способ интеграции в графическое окружение Windows. Мне более всего по душе первый, когда каждое приложение Linux находится в своем окне.


На втором шаге нам предлагается автоматически запускать какое-нибудь приложение вместе с иксами. Я предпочел сделать это позже по мере необходимости посредством уже запущенного нами PuTTY.


На третьем шаге указываем параметры запуска Xming. Опция Clipboard позволяет интегрировать буфер обмена. Также для полноценной работы я ввел следующие параметры:
«-dpi 96″ — чтобы поправить размер шрифтов. Значение можно подбирать по вкусу.
«-xkblayout us,ru» — для работы с двумя раскладками клавиатуры.
«-xkbvariant basic,winkeys» — уточнение раскладок.
«-xkboptions grp:caps_toggle» — переключение раскладки клавишей CAPS LOCK.


И, наконец, на следующем шаге сохраняем настройки кнопкой «Save configuration» и запускаем X-сервер кнопкой «Готово».


В системном лотке появится иконка Xming


В дальнейшем запустить сервер с теми же настройками можно просто путем открытия сохраненного файла. Изменить настройки можно через контекстное меню файла.


Итак, X-сервер запущен. Возвращаемся в нашу консоль, предоставленную соединением SSH. Здесь мы можем удаленно запустить консольное приложение, и в этой же консоли увидим вывод этого приложения. А что теперь будет, если мы попытаемся запустить в этой консоли графическое приложение? Обычно, если вы подключились по SSH и пытаетесь запустить оконное приложение, вы получите ошибку, потому что вы подключились к удаленному компьютеру в консольном режиме, и рисовать окна просто нечем. Однако, в этот раз мы включили перенаправление графики на наш компьютер Windows, на котором уже запущен свой X-сервер. Поэтому, если вы попытаетесь запустить оконное приложение в удаленном консольном терминале, его окно нарисуется на компьютере Windows. Попробуйте, например, набрать следующую команду:

$ kwrite &
или
$ gedit &

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

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

Кстати говоря, благодаря этой клиент-серверной архитектуре злоумышленник может отправить на ваш экран окно с просьбой ввести ваш пароль или еще с какой-нибудь гадостью. Чтобы такого не происходило, не подключайтесь к общественным сетям без фаирвола. И помните: большие возможности — это большая ответственность.

Оригинал статьи http://debback.blogspot.com


Popularity: 45%





7 Комментариев »


7 Responses to “Удаленное подключение к рабочему столу Linux из Windows с помощью Xming и SSH”

  1. matt19 on 14 Апр 2009 at 07:50 #

    не поленился, зарегистрировался: чтобы сказать спасибо. Вроде и несложные вещи, но когда вот так вот наглядно и понятно….спасибо.

  2. Stepanoff on 14 Апр 2009 at 08:39 #

    Всегда пожалуйста!

  3. nics262 on 18 Дек 2009 at 13:09 #

    Огромное спасибо! Великолепная статья.

  4. Evgeny on 31 Мар 2010 at 10:45 #

    К сожалению, сделав все как написано, результата я не получил!

  5. Stepanoff on 31 Мар 2010 at 20:54 #

    Иногда многое можно понять просмотрев логи.

  6. andr128 on 19 мая 2010 at 00:13 #

    Статья отличная. Но, сделав все, как написано, — не заработало, посмотрел логи, появилось, что добавить к статье:
    1. На Linux-сервере уже могут быть запущены X-ы. Поэтому в Xming-е надо проставлять в настройках незанятый номер дисплея (файл config.xlaunch, параметр Display=»1″).
    2. Почему-то Putty при указании сетевого адреса Windows-компа в настройках SSH->X11 (вида 192.168.0.100) выводило ошибку вида «cannot open display localhost:10.0″. Откуда берется 10.0 я не понял. Когда я прописал в настройках SSH->X11 адрес «192.168.0.100:1.0″ с намеком, что дисплей у меня первый, стала выводиться ошибка «cannot open display localhost:10.168″. Эти цифры для меня так и остались загадкой. Поэтому я открыл лог XMing (вызывает по по правой кнопке мыши в окошке в трее), увидел строчку вида «winInitMultiWindowWM — DISPLAY=127.0.0.1:1.0″ и просто вставил именно «127.0.0.1:1.0″ в качестве адреса дисплея (SSH->X11). После этого все заработало.

    У меня осталась только пара вопросов:
    1. Можно ли как-то сделать, чтобы в винде у меня открывались не разнородные окошки, а прямо Kubuntu-вский рабочий стол с меню?
    2. Если можно, то можно еще сделать так, чтобы с винды происходило именно управление теми же иксами, которые открыты на Linux-овом серваке, а не открытие своих?

  7. Максим Степанов on 19 мая 2010 at 08:27 #

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

Trackback URI | Comments RSS

Leave a Reply

You must be logged in to post a comment.


Самые популярные статьи

  • Установка и настройка DNS сервера bind9 Ubuntu-Debian HOWTO
  • Установка Samba сервера на Ubuntu или Debian за 5 минут
  • Установка почтового сервера Postfix + Dovecot + MYSQL и виртуальных доменов
  • Установка и настройка Open VPN сервера на Debian и Ubuntu
  • Настройка маршрутизации в Ubuntu Linux для начинающих
  • Настройка шлюза в локальной сети, лимитирование скорости (shaper), фаервол (iptables).
  • Удаленное подключение к рабочему столу Linux из Windows с помощью Xming и SSH
  • Установка и настройка DHCP сервера
  • Установка и настройка VSFTPD + MYSQL (Ubuntu & Debian)
  • Настройка ограничения и распределения канала (HTB Shaper)
  • Настройка sudo в Debian GNU/Linux и Ubuntu Linux
  • Mail.ru Агент в Linux
  • Установка и настройка L2TP сервера xl2tpd или l2tpd
  • Установка хостинг панели ISPConfig 3 на Ubuntu 9.04
  • Как установить LDAP сервер и его клиентов. (ldap linux debian & ubuntu auth)
  • Сетевые утилиты онлайн - NSLOOKUP
  • Подробное руководство по настройке wifi соединения с шифрованием разных типов
  • Установка apache2.2.x во FreeBSD 7.0
  • IP телефония в Ubuntu или Debian на базе Asterisk за 15 минут
  • Различия в ядрах Ubuntu Server и Ubuntu Desktop
  • Linux в роли WI-FI точки доступа
  • Игры в Linux
  • Установка Ubuntu на RAID-1 диски
  • Настройка рабочего стола Ubuntu, или как догнать и перегнать Windows!
  • Ставим и настраиваем XEN сервер
  • Установка Nginx, PHP5, FastCGI, XCache и MySQL на Ubuntu
  • Открылся русскоязычный Linux торрент трекер
  • HDR обои на рабочий стол 1920×1200
  • Установка Zend Optimizer на Ubuntu 10.04 LTS
  • Сборка Midnight Commander 4.6.3 на Mac OS Leopard

  • « | »

    Рейтинг блогов Rambler's Top100
    службы мониторинга серверов