Удаленный рабочий стол (KDE) через обратный туннель SSH

У меня есть обратный туннель ssh через сервер посредника, настроенный и работающий. Я запускаю Kubuntu 12.04 здесь и на удаленной машине.

Я хочу открыть сеанс удаленного рабочего стола. До сих пор я использовал Team Viewer для входа на удаленный рабочий стол. Я бы хотел добиться аналогичных результатов без Team Viewer. Я понимаю, что X по SSH достигнет этого. Если мне нужно vnc, все в порядке.

Вот моя проблема на данный момент. Когда я подключен к удаленной машине через туннель, я получаю эту ошибку:

$ startkde & $ $DISPLAY is not set or cannot connect to the X server. 

Я подключаюсь к опции -Y SSH и используя ключи (а не пароли). Все, что связано с SSH, кажется, работает нормально. Единственная проблема, которую я вижу, – это X. Вот еще один пример:

 $ xeyes & $ Error: Can't open display: 

А также

 $ echo $DISPLAY $ 

(ничего не возвращает)

Эти ответы кажутся релевантными, но я не смог понять их достаточно подробно, чтобы выработать решение в моем случае:

Можно ли запустить графическую программу на рабочем столе другого пользователя с правами root?

https://superuser.com/questions/190801/linux-wmctrl-cannot-open-display-when-session-initiated-via-sshscreen/190878#190878

One Solution collect form web for “Удаленный рабочий стол (KDE) через обратный туннель SSH”

Если вы используете сервер-в-середине для соединения двух систем, вероятность того, что хотя бы одна из строк довольно медленная. В этом случае VNC, скорее всего, даст вам лучшую производительность, так как вы можете лучше настроить соотношение пропускной способности / производительности / соотношение качества (это действительно справедливо для большинства настроек, если вы не находитесь в надежной сети 100 Мбит +).

Мне лично нравится x11vnc , который подключается к запущенному X-серверу и пересылает входы / выходы по протоколу VNC (это можно сделать, как только X-сервер будет запущен, так что вы сможете взаимодействовать даже с диспетчером отображения). Сервер X, о котором идет речь, может быть как обычным (который выводится на реальный дисплей), так и на основе фреймбуфера, например Xvfb . Затем вы можете использовать любой клиент VNC для подключения к экспортированному X-серверу. И, конечно, вы, вероятно, хотите туннелировать передачу через ssh или stunnel . Страница руководства x11vnc является довольно исчерпывающей и даже имеет часто используемый пример командной строки в начале.

Это также позволяет удаленно подключаться к работающему сеансу, чтобы помочь кому-то решить проблему удаленно. В качестве важного бонуса, поскольку только входы и выходы пересылаются, а не сам протокол X, сетевые разъединения просто прерывают сеанс, но все программы остаются запущенными, что не относится к X-SSH .

Если по какой-то причине вы действительно хотите туннелировать X11 через SSH, вы должны убедиться, что переменная среды DISPLAY настроена правильно ssh . Без этого вы не сможете продолжить, потому что приложения не будут знать, к какому серверу подключиться. Проверьте, соответствует ли директива X11Forwarding yes в вашей конфигурации sshd .

Последнее, но не менее важное, вы, вероятно, не хотите запускать startkde4 (или любой другой X-сеанс, если на то пошло) по SSH – сетевая нагрузка, вероятно, будет довольно тяжелой – VNC снова послужит вам лучше.

  • Аутентификация X11 не работает в `sudo sux / sudo su`, но работает в` sux / su.` Почему?
  • Переконфигурируйте некоторые ключи на системном уровне
  • Ошибка с `ssh -Y`, ошибка в файле блокировки
  • Как узнать, какая система драйверов X11 используется?
  • Резервное копирование магазина при отображении / отмене отображения windows X11?
  • Как я могу запустить startx и запустить сценарий удаленно через SSH?
  • Почему клавиша Caps Lock ведет себя как ключ Caps Lock без модификатора Lock?
  • xmodmap shift + keycode для создания keyym
  • Как узнать, какая программа «владеет» горячей клавишей?
  • dconf не работает при запуске приложения X от другого пользователя
  • Я не понимаю некоторых аргументов для команды xrandr
  • Linux и Unix - лучшая ОС в мире.