10

Эта проблема

Большинство людей хотят подключиться к серверу через ssh с опцией «-X», чтобы запускать программы с графическим интерфейсом на удаленном хосте, используя отображение клиента. Я хотел бы запускать программы с графическим интерфейсом на физическом мониторе, подключенном к серверу. Это возможно ? Позвольте мне быть более конкретным:

Моя ситуация следующая: у меня есть рабочая станция без клавиатуры или мыши, но к ней подключен монитор. Я хотел бы подключиться к SSH на своем ноутбуке и иметь возможность запускать графические программы, такие как xeyes или ssvnc, и отображать их на мониторе рабочей станции.

[xapple@laptop ~]$ ssh workstation
Last login: Mon Sep 26 20:03:35 2011 from laptop
[xapple@workstation ~]$ export DISPLAY=:0
[xapple@workstation ~]$ xeyes
No protocol specified
Error: Can't open display: :0

Редактировать: дополнительная информация

Возможно, мне следует объяснить несколько вещей более четко:

  • У меня есть доступ sudo на рабочей станции, я могу установить все, что нужно.
  • Рабочая станция работает под управлением пользовательского интерфейса GNOME.
  • Прежде чем отключить клавиатуру и мышь от рабочей станции, я вошел в сеанс GNOME. Поэтому можно видеть мой рабочий стол GNOME на мониторе рабочей станции.
  • Я не хочу запускать программы с моего ноутбука на рабочей станции. Я хотел бы запускать программы для рабочих станций на рабочей станции. Xeyes или любой исполняемый файл найден на удаленном сервере и должен быть запущен на мониторе удаленного сервера
  • Я понимаю, что выполнение этого оставит меня в ситуации, когда мой курсор не будет подключен к интерфейсу. Я не могу нажимать на вещи. Это нормально.

Любая помощь с благодарностью!

2 ответа2

5

любое xlib-приложение должно подключаться к xserver. Вы должны сообщить приложению о подключении к серверу:

  • установка переменной окружения DISPLAY
  • используя флаг командной строки, такой как -display

первый xserver обычно может быть достигнут через строку соединения ':0'. Итак, попробуйте это:

xeyes -display :0

или это

env DISPLAY=:0 xeyes
5

На этой рабочей станции работает сервер X Windows? Без этого, это все спорно.

Вам нужно что-то, чтобы обработать данные в графику, пиксели, цвета и местоположения. «Монитор» бесполезен без какого-либо программного обеспечения для его запуска.

Предполагая, что это так. (но из текста, конечно, звучит иначе)

Учитывая имена хостов (и соответствующее разрешение DNS через /etc /hosts или DNS или что-то еще) для «рабочей станции» и «ноутбука» ... если нет, замените имена хостов машины соответствующими IP-адресами.

ssh workstation
xhost +laptop

Затем вы можете выйти из рабочей станции на этом этапе, так как это устанавливает разрешения на Xserver рабочей станции для подключения «ноутбука».

если вы запустите свои программы с соответствующей настройкой DISPLAY env var, вы можете заставить приложения отображаться на рабочей станции во время работы на вашем ноутбуке.

DISPLAY=workstation:0 xeyes

-или же-

export DISPLAY=workstation:0
xeyes

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

Строка 'xhost' позволяет разрешить ноутбуку подключаться к Xserver рабочей станции. Без этого вы получите отказ в разрешении, если только вы не запустите X-сервер без разрешений, что на самом деле не рекомендуется. Защита «xhost» по-прежнему неэффективна, поскольку данные передаются в виде обычного текста между ноутбуком и рабочей станцией и могут быть перехвачены, но это простое решение.

Если вам нужна конфиденциальность, вам нужно установить какой-то зашифрованный туннель между вашим ноутбуком и рабочей станцией (порт 6000 для отображения:0). Да, это становится странным в этой точке.

Если вы находитесь в контролируемой среде, то использования команды «xhost +laptop» будет достаточно, если вы выйдете из части «laptop» этой команды «xhost +», тогда ЛЮБОЙ сможет подключиться к серверу Xserver и отобразить информацию.

Помните, что ваша мышь НЕ «подключена» к рабочей станции Xserver, и вы НЕ сможете манипулировать окнами или щелкать мышью.

Если вы хотите, чтобы мышь была подключена, я бы порекомендовал что-то вроде x2x, synergy, vnc или приложения для разделения экрана на основе X Windows.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .