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


16

Я обычно оставляю много программ запущенными на моей рабочей станции, и иногда мне нужно использовать это удаленно. Поэтому мне нужно подключиться к существующему сеансу X, сохраняя при этом физический дисплей (монитор рабочей станции) все время заблокированным.

Я пробовал vino (vino-server & vinagre в качестве клиента), но они открывают новый пустой сеанс X, поэтому он не дает мне доступ к запущенным приложениям.

Я также попробовал x11vnc, но он выглядит, чтобы разблокировать физический экран и оставить его разблокированным (!), Когда клиент завершит работу, поэтому у нас есть проблема с безопасностью ...

На обоих концах работает Ubuntu 12.04 с графическим интерфейсом по умолчанию, поэтому никакое конкретное решение GNOME не будет работать (апплеты и т. Д.).

Идеальное решение должно дать мне доступ ко всем программам, запущенным как на мониторах, так и на нескольких «виртуальных рабочих столах». Что может потребовать захвата специальных клавиш, таких как Crtl + [число] и Alt-TAB.

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

РЕДАКТИРОВАТЬ: x1vnc, а не "x11server", конечно ...


Частичное решение я нашел здесь: karlrunge.com/x11vnc/faq.html#faq-gone-lock
— sfp

Частичное решение я нашел на странице x11vnc Author, но я не уверен, что оно работает с ЖК-дисплеем. Как это устроено? В режиме выключения DPMS есть программа для настройки параметров блока blockdpy (стандартно для ЭЛТ-мониторов; выключено - энергосбережение), которая просматривает несколько раз в секунду, если она изменилась. Если это так - он выполняет команду типа «включить заставку». Поэтому экран должен быть черным или заблокированным (также для удаленного пользователя vnc).
— sfp

Обратите внимание, что вы можете частично решить проблему разблокировки экрана, просто запустив его, DISPLAY=:0 gnome-screensaver-command -lкогда закончите. Экран все еще будет разблокирован на время вашей сессии.
— Майкл Миор

Ответы:


10

Насколько я знаю, невозможно пересылать уже существующие окна через SSH.

Я бы предложил пойти на x11vnc. Возможно, вам придется установить его в первую очередь. Эта команда должна включить одноразовый VNC-сервер без пароля, который будет использовать ваш текущий рабочий стол (первым пришел, первым обслужен):

x11vnc -noxdamage -display :0 -safer -nopw -once -xrandr

Возможно, вам придется настроить дисплей. Вы также можете получить его программно с помощью интерфейса ConsoleKit dbus, но это слишком много проблем и :0хорошо в большинстве случаев. Если это не сработает, просто используйте :1и так.

Это очень удобно, потому что вы можете запустить его с SSH-сессии из другого места, просто когда вам это нужно.


Я пробовал x11vnc, только опечатка при подготовке вопроса. Исправленный. Во всяком случае ... Я не вижу, как эти опции спасают меня от экрана разблокировки.
— sfp

2

Вы должны взглянуть на x2go и просто подключиться к «Connection to Local Desktop» вместо того, чтобы указывать оконный менеджер или среду рабочего стола.

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


Нет, это разблокирует локальный рабочий стол.
— Роберт Поллак

1

Вы должны взглянуть на X11RDP .

Это действительно отличное обновление Xrdp, кроме того, вы можете настроить поведение по мере необходимости. У меня были те же проблемы, что и у вас, и я установил x11rdp и отредактировал файл xrdp.conf, чтобы разрешить вход в предыдущую сессию ... В любом случае, проверьте сайт и попробуйте версию 7. Парень из Kevin Cave - гений, и теперь он делает некоторые обновления, чтобы вы могли установить x11rdp как пакеты Debian.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.