在远程主机上远程启动 X

在远程主机上远程启动 X

我想要远程启动远程机器上的 xserver。

如果我直接在主机上输入“startx”(即使用物理键盘),xserver 会按预期启动。但是,当我尝试使用同一用户通过 ssh 执行此操作时,却不起作用。

我收到以下服务器错误:

      (EE) xf86OpenConsole: Cannot open virtual console 7 (Permission denied)

sudo startx 甚至可以在远程工作。

是什么阻止 xserver 在远程连接上启动?如何解决这个问题?

答案1

tty要运行 X,您需要对要在其上运行 X 的设备具有读/写访问权限(就您而言tty7)。过去,Xorg通常以 root 身份运行,并且/usr/bin/Xorg二进制文件已设置 SUID 位,因此权限方面没有任何问题。

最近,Linux 发行版开始切换到无根/无 SUIDXorg二进制文件,因此 X 服务器具有与用户相同的权限。对于在物理 ( tty) 控制台上登录的用户来说,这不是问题,因为login进程会将设备的所有权更改tty为登录用户。

有几种方法可以解决这个问题。

最干净的方法可能是将 Xorg 的 SUID 位恢复原状:

sudo chmod u+s /usr/lib/xorg/Xorg

答案2

阅读man ssh,并使用-X-Y选项。

https://manpages.ubuntu.com/manpages/bionic/en/man1/ssh.1.html

相关内容