запуск графических приложений через ssh putty
Запуск графических приложений по ssh
Вначале немного лирики, а потом — практические советы. На днях я решил попробовать удаленно зайти на компьютер любимой жены и дочурки и во время просмотра онлайн кино захотел запустить на их экране текстовый файл с текстом и изображением. Для начала я создал на своем микро-компьютере Raspberry PI 3 в LibreOffice Writter надпись «Я вас люблю» и сохранил на Рабочий стол. Потом я подключился к их компьютеру по ssh, запустил Midnicht Commander и скопировал в их Домашний каталог созданный файл test.odt. И во время данного эксперимента я для себя сделал небольшое открытие, хотя до этого об одном из пунктов я знал.
1. По ssh соединению можно запустить графическое приложение удаленного компьютера, которое откроется на вашем мониторе.
2. Можно также запустить то же графическое приложение, но оно уже откроется на удаленном мониторе.
Возможно многие скажут, что ничего нового я не написал, но просто раннее мне не приходилось проделывать эти действия и свершилось это только сейчас. В любом случае для многих это будет очень полезным, уж для меня это точно оказалось познавательным и нужным.
Для начала нужно сделать кое-какие настройки в конфигурационном файле /etc/ssh/sshd_config на удаленном компьютере и вашем. На удаленной машине нужно раскомментировать (убрать символ # ) или добавить строку:
После перегрузим ssh, выполнив команду:
sudo service ssh restart
На своем компьютере нужно раскомментировать или добавить строку:
Теперь, подключаясь к удаленному хосту, для запуска графической программы, нужно будет использовать следующие ключи:
X — перенаправлять графический вывод
С — компрессия передаваемых данных
Команда будет иметь такой вид:
где — user (логин пользователя удаленной машины)
192.168.1.xx — IP-адрес удаленной машины.
После этого можно запускать любую программу, имеющую графический интерфейс, и она появится на вашем мониторе. Вы увидете приложение даже в том случае, если такая же программа не установлена на вашем компьютере. В итоге можно запустить удаленную графическую программу и на своем мониторе поработать с ней, а результат сохранить на удаленный компьютер. Это очень удобно, если хозяин удаленной машины попросил вас помочь в настройке определенной программы, или в создании какого-нибудь файла, созданного в LibreOffice, GIMP, Inkscape и т.д. Вы теперь можете удаленно помочь человеку. Хотя некоторые тормоза присутствуют, но это не критично.
Теперь рассмотрим случай, когда нужно запустить удаленное приложение, которое должно отобразиться на том же удаленном компьютере.
Зайдем на удаленный «комп»:
После этого дадим команду GUI программам, что по нашей (удаленной) команде, они должны запустить в графическом режиме на своем (локальном) компьютере:
Теперь можно запускать любое приложение:
или, как в моем случае, я запустил нужный мне файл:
Можно также запустить приложение в связке с утилитой nohup, которая защитит программу от сбоев связи. Теперь даже если вы отключитесь от удаленной машины, то запущенная программа будет работать. Пример:
Можно сразу запустить браузер с нужным сайтом:
Запуск графических приложений через ssh putty
Если для доступа с Вашего рабочего компьютера с ОС Windows, к удалённому компьютеру с ОС Linux мы используем Putty, то при таком подключении, можно запускать только консольные утилиты. А что делать, если хочется запускать графические программы, например firefox или nautilus. Всё просто.
Допустим на удалённом Linux уже установлен SSH-сервер Теперь наша цель удалённо запускать графические программы.
В конфигурации /etc/ssh/sshd_config должно быть разрешено перенаправление графического интерфейса:
2. Указываем клавиатуру Linux
3. Указываем кодировку UTF-8
4. Указываем данные пользователя (логин и пароль)
5. Включаем X11-перенаправление графического интерфейса.
Возвращаемся во вкладку сеанс, сохраняем его и подключаемся. В случае успешного подключения видим текстовую консоль. Теперь мы можем удаленно запустить консольные программы, но графические программы нет. Поэтому оставим на время наше подключение по SSH.
Установка и настройка Xming X Server for Windows
В дополнение к Putty установите себе Xming X Server for Windows. Скачать Xming
Устанавливаем Xming, при установке указываем, какой putty установили, например Normal PuTTY если C:\Program Files\PuTTY\PuTTY.exe
Предлагается автоматически запускать желаемое приложение вместе с иксами, но я предпочел запускать через запущенный мною PuTTY.
Указываем параметры запуска Xming.
Опция Clipboard позволяет интегрировать буфер обмена.
Для полноценной работы я ввел следующие параметры:
Далее жмём сохранить конфигурацию, что бы каждый раз не настраивать, а сразу запускать X-сервер с сохранёнными настройками
Теперь жмём кнопку «Готово» для запуска X-сервера
В системном лотке появится иконка Xming
X-сервер запущен. Возвращаемся в нашу консоль, предоставленную Putty и запускаем команды в фоновом режиме
Браузер Firefox и обозреватель файлов должны открыться как обычные окна в windows
Centos
Есть сервер, на котором нету X-сервера, только консоль. А нам нужно, к примеру, установить Oracle Solaris Studio и запускать ее удаленно. Или какое-то другое приложение, работающее в GUI-режиме.
Для решения этой задачи выполняем следующее.
1. На сервере устанавливаем пакеты xauth и xterm. Например, для Oracle Linux (или другого RHEL ):
yum install xauth xterm
2. Также, нужно проверить, включено ли X11 Forwarding в конфигурационном файле SSH-демона:
Установка Xming тривиальна, по типу далее, далее, далее. Только поставить галочку, что мы будем использовать его вместе с Putty. Сам Putty так же устанавливаем.
4. Запускаем Xming, он свернется в трей и после этого запускаем Putty и на вкладке Connection / SSH / X11 отмечаем галочку Enable X11 forwarding, а также дописываем в поле X display location значение localhost:0.
4. Далее подключаемся к удаленному серверу и запускаем наше приложение. Например, Solaris Studio:
Когда всё подгрузится, вы увидите заветное окошко: Для тех, кто работает в Linux-среде всё еще проще. Запускать приложения на удаленной машине можно, добавляя к подключению по ssh ключ -X.
Графический интерфейс через Putty
Пятница, 01 Май 2015 00:00
Удалённые подключения могут быть легко установлены через SSH (secure shell), можно авторизоваться, выполнять действия или посылать команды в другую систему через это соединение или командную строку. Однако невозможно запустить приложение с графическим интерфейсом для просмотра текущего содержимого удалённого узла, это является недостатком использования ssh в терминале.
Данный недостаток можно легко исправить использованием утилиты «putty». Примеры приложений с графическим интерфейсом: браузер, текстовые редакторы и т.д.
1 Введение
В этой статье рассмотрим установку и использование Putty в кластере Raspberry Pi, под управлением ОС Raspbian и MPICH2 (интерфейс передачи сообщений). Putty будет использоваться для просмотра текстовых файлов, с помощью приложения «leafpad» и браузеров типа «Netsurf» и «Dillo», которые предустановлены на любой версии ОС Raspbian. Также рассмотрим сохранение настроек, таким образом, чтобы в следующие разы просто загружать уже настроенные параметры.
2 Установка и запуск Putty
Putty устанавливается через терминал:
Затем проверим правильность установки, для этого существует 2 способа:
1. прописать команду в терминале:
2. или через меню программ в разделе «Other»:
Далее откроется меню настроек.
3 Настройка Putty
После запуска putty, сначала введём IP адрес узла, к которому хотим подключиться, адрес вводится в разделе «Host Name». Например подключимся к адресу «10.32.4.230».
После настройки IP адреса, потребуется включить X11, для запуска приложений с графическим интерфейсом с удалённого узла:
Прокрутим левую панель putty и выберем опцию SSH.
После этого выберем опцию «X11», представленную на левой панели.
Далее включим «Enable X11 forwarding» в правой части.
4 Подключение к удалённому узлу
После включения X11 forwarding, кликнем по кнопке open внизу окна putty. Откроется подключение с удалённым узлом 10.32.4.230 и терминал. Также можно выполнить команду «ls», для просмотра файлов на удалённом узле.
5 Открытие файлов HTML в браузере
Способ, которым можно открыть файлы HTML удалённо в raspberry pi зависит от используемого браузера. Рассмотрим браузеры Dillo и Netsurf для открытия существующего файла HTML, с названием «sum1.html».
5.1 Браузер Netsurf
Для открытия файла «sum1.html» введём в терминал следующее:
5.2 Браузер Dillo
Для открытия файла с использованием Dillo введём следующую команду в терминал putty:
Вообще, браузер Netsurf предпочтительней, но в случаях низкой пропускной способности сети лучше использовать Dillo, так как он имеет меньшую нагрузку.
6 Открытие текстовых файлов в редакторах с графическим интерфейсом
Raspbian содержит хороший текстовый редактор с графическим интерфейсом, под названием «leafpad». Для открытия текстового файла, с названием «indsum1.txt» введём следующее:
7 Сохранение настроек
Если существует необходимость запускать приложения с графическим интерфейсом каждый раз при использовании Putty, следует сохранить настройки. Для этого в меню настроек выбираем вкладку «sessions» на левой панели окна putty. Внизу можно увидеть текстовое окно, с названиями «load, save or delete sessions». Напечатаем имя сессии в этом текстовом окне, например, «GUI_login» и нажмём «save»в правой панели. Затем имя сессии должно появиться в окне снизу, теперь каждый раз для запуска необходимо дважды кликнуть по сохранённому имени сессии.
Использование «putty» является самым простым способом удалённого запуска приложений с графическим интерфейсом, при этом значительно используя пропускную способность сети.
Таким образом, можно запускать различные приложения, предустановленные в Raspbian OS. Этот метод также работает в Ubuntu и Debian.
Удаленное подключение к рабочему столу Linux из Windows с помощью Xming и SSH
Вы видите приложения Linux прямо на рабочем столе Windows! Как же они туда попали?
Но это еще не все! Дело в том, что оконная система может находиться на другом компьютере, а графическое приложение связываться с ней через сеть. Так вы можете запустить приложение на удаленном компьютере, заставив его рисоваться на том компьютере, за которым сейчас работаете. Или наоборот. Или запустить программу на одном удаленном компьютере с отрисовкой интерфейса на другом удаленном компьютере. Заманчивая возможность, неправда ли? 🙂
Думаю, достаточно теории, давайте приступим к практике.
$ sudo apt-get install openssh-server
Все, с этим компьютером мы закончили, и касаться его клавиатуры в ходе этой статьи больше не будем. Теперь можем переходить к подготовке компьютера Windows. Здесь нужно установить две программы:
1. SSH-клиент. Я установил PuTTY.
2. X Server для Windows. Я выбрал Xming.
Для начала установим соединение по SSH с удаленным компьютером. Для этого запускаем PuTTY. Вводим IP-адрес компьютера Linux.
Теперь переходим в раздел Connection / SSH / X11 и включаем перенаправление графического интерфейса. В качестве расположения X-сервера водим IP-адрес компьютера Windows, за которым сейчас сидим.
На втором шаге нам предлагается автоматически запускать какое-нибудь приложение вместе с иксами. Я предпочел сделать это позже по мере необходимости посредством уже запущенного нами PuTTY.
И, наконец, на следующем шаге сохраняем настройки кнопкой «Save configuration» и запускаем X-сервер кнопкой «Готово».
В системном лотке появится иконка Xming
В дальнейшем запустить сервер с теми же настройками можно просто путем открытия сохраненного файла. Изменить настройки можно через контекстное меню файла.
Итак, X-сервер запущен. Возвращаемся в нашу консоль, предоставленную соединением SSH. Здесь мы можем удаленно запустить консольное приложение, и в этой же консоли увидим вывод этого приложения. А что теперь будет, если мы попытаемся запустить в этой консоли графическое приложение? Обычно, если вы подключились по SSH и пытаетесь запустить оконное приложение, вы получите ошибку, потому что вы подключились к удаленному компьютеру в консольном режиме, и рисовать окна просто нечем. Однако, в этот раз мы включили перенаправление графики на наш компьютер Windows, на котором уже запущен свой X-сервер. Поэтому, если вы попытаетесь запустить оконное приложение в удаленном консольном терминале, его окно нарисуется на компьютере Windows. Попробуйте, например, набрать следующую команду:
$ kwrite &
или
$ gedit &
Амперсанд в конце команды указывает, что программу нужно запустить в фоновом режиме, чтобы во время ее работы консоль была доступна для других действий.
Ну, надеюсь, у вас все получилось, и на вашем рабочем столе Windows красуются оконные приложения Linux.