我可以登录远程 Ubuntu(Kubuntu 12.04)计算机。使用来自(如何通过 SSH 在远程 Linux PC 上启动 GUI 软件)登录后我尝试了以下操作:
user@Kub:~$ export DISPLAY=:0
user@Kub:~$ firefox
No protocol specified
No protocol specified
No protocol specified
No protocol specified
Error: cannot open display: :0
我期望获得与问题中所述相同的成功。不幸的是,如您所见,它对我来说不起作用。这台机器有 3 个显示器。这可能是问题所在吗?
有简单的解决办法吗?我也读过(https://unix.stackexchange.com/questions/10121/open-a-window-on-a-remote-x-display-why-cannot-open-display),但我不明白如何使用或应用该建议。它太复杂了。我很感激任何相对简单的解决方案。
我使用以下命令查看了正在运行的 GUI 进程(Kate):
# cat /proc/2857/environ | tr \\0 \\n | grep -E '^(DISPLAY|AUTHORITY)='
DISPLAY=:0
这让我更加困惑为什么它不起作用。
根据 Scott Goodgame 的建议(如下),我尝试这样做:
- 使用 SSH 上的 -X 和 -C 选项登录。
- 导出显示=:0
- 火狐浏览器
结果是:
$ No protocol specified
No protocol specified
No protocol specified
No protocol specified
Error: cannot open display: :0
答案1
启动图形程序的一个简单方法是像这样启动 ssh...ssh -X -C user@MyIp
然后它将像平常一样启动你的 ssh 会话,但是你可以像这样启动 X 程序..firefox &
这将在远程计算机上启动 Firefox,在你本地显示它,并返回到 ssh 提示符。
答案2
我在 Kubuntu 12.04 上。以下是如何远程启动 x11vnc 的示例。
首先运行命令ps wwwwaux | grep auth
来查找 xauth cookie。结果将类似于以下内容:
root 1592 3.6 6.2 665544 1023456 tty7 Ss+ Jul14 288:35 /usr/bin/X :0 vt7 -br -nolisten tcp -auth /var/run/xauth/A:0-ABCDEF
感兴趣的部分位于该行的末尾:/var/run/xauth/A:0-ABCDEF
(其中 ABCDEF 是一个唯一的随机(?)字符串)
接下来将结果插入到此命令中:
sudo x11vnc -rfbport 5901 -rfbauth ~/.vnc/passwd -display :0 -shared -xauth /var/run/xauth/A\:0-ABCDEF
答案3
您需要 xauth 来允许导出显示并创建一个空的 Xauthority 文件。
apt-get install xauth
touch ~/.Xauthority