如何在不解锁物理显示的情况下连接到现有的X会话?

我通常会在工作站上运行许多程序,有时我需要远程使用它。 所以我需要连接到现有的X会话,同时保持物理显示(工作站的监视器)一直处于锁定状态。

我尝试了vino(vino-server和vinagre作为客户端),但是他们打开了新的空X会话,所以它不允许我访问正在运行的应用程序。

我也尝试了x11vnc,但它看起来解锁了物理屏幕并在客户端完成时将其解锁(!),因此我们遇到安全问题……

在两端都运行Ubuntu 12.04,默认GUI,因此没有GNOME特定的解决方案可以工作(小程序等)。

理想的解决方案应该允许我访问在两个监视器和几个“虚拟桌面”上运行的所有程序。 哪个可能需要捕获特殊键,如Crtl + [number]和Alt-TAB。

或者……如果可以通过ssh -X转发现有窗口(程序已经运行),那将是一个很好的解决方法。

编辑:x1vnc,当然不是“x11server”……

据我所知,不可能通过SSH转发已经存在的窗口。

我建议去x11vnc 。 您可能需要先安装它。 此命令应启用一次性无密码VNC服务器共享您当前运行的桌面(先到先得):

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

您可能需要调整显示。 您也可以通过使用ConsoleKit dbus接口以编程方式获取它,但这太麻烦了:0在大多数情况下都很好。 如果这不起作用,只需使用:1等。

这很方便,因为您可以从其他地方的SSH sesion运行它,就在您需要的时候。

你应该看看X11RDP 。

它真的是Xrdp的一个很好的更新,你可以根据需要自定义行为。 我遇到了与之前相同的问题,我安装x11rdp并编辑xrdp.conf文件以启用登录到上一个会话…无论如何检查网站并尝试版本7。 那里的人“凯文洞穴”是天才,现在他做了一些更新,所以你可以安装x11rdp作为Debian软件包。

您应该查看x2go并只连接到“连接到本地桌面”,而不是指定窗口管理器或桌面环境。

它使用SSH,因此一旦在工作站上安装并启动服务器,如果已经可以通过SSH连接到x2goclient,则应该能够连接到它。