X11 转发到 Mac 不起作用

X11 转发到 Mac 不起作用

我在 VMWare 中运行 Ubuntu 服务器。我想将 X11 从 Ubuntu 客户机转发到 Mac 主机。

我已经安装XQuartz 2.7.9 (xorg-server 1.17.4)在Mac主机上了。

Ubuntu 上的 SSH 转发已启用。

然后我在 iTerm 中尝试了以下操作:

%> echo $DISPLAY
/private/tmp/com.apple.launchd.mjxVyILVrR/org.macosforge.xquartz:0
%> ssh -X root@xxxx
# echo $DISPLAY

# gnome-terminal
Unable to init server: Could not connect: Connection refused
Failed to parse arguments: Cannot open display

$DISPLAY 为空,X11 转发不起作用。

有任何想法吗?

答案1

尝试跑ssh -Y root@xxxx进去xterm 里面XQuartz 而不是 iTerm。那样有用吗?

答案2

在远程系统中打开 /etc/ssh/sshd_config 并设置 X11Forwarding yes 。然后重启ssh服务并重试

答案3

如果我错了请纠正我。您想要从 Mac 远程访问运行 Ubuntu 的计算机,当您“ssh”进入 Ubuntu 并尝试“echo $DISPLAY”时,您会得到一个空响应。以下解决方案可能不适用于您的情况,但如果您尝试的内容与我尝试过的类似,请尝试一下。

正如您已经发现的那样,必须首先找到 DISPLAY 变量。

所以在你的 Mac 中如果你以普通用户身份输入

echo $DISPLAY

那么你会得到类似下面的东西(就是你手上的情况)。不管怎样,你们都会在你们的系统中看到类似的东西。

/private/tmp/com.apple.launchd.0aQYNoXMFK/org.xquartz:0

然后尝试类似的东西

xeyes

现在您知道您的显示器正在工作

现在,如果您想尝试与root相同的操作(请不要跳到我身上,我知道你们中的一些人强烈反对root访问),但如果不起作用,那么在您的root提示符中执行以下操作

export DISPLAY=/private/tmp/com.apple.launchd.0aQYNoXMFK/org.xquartz:0

与您在普通用户帐户中找到的相同。然后将“/Users/normal user/.Xauthority”处的“.Xauthority”复制到“/var/root/”。 .Xauthority 文件已经存在,但这会覆盖它。

cp /Users/normal user/.Xauthority /var/root/

当然,导出可能会起作用,但执行上述操作并没有坏处。现在尝试以下操作。

echo $DISPLAY

你应该看到以下内容

/private/tmp/com.apple.launchd.0aQYNoXMFK/org.xquartz:0

如果您从普通用户提示符“ssh”进入 Ubuntu,那么您不需要执行 root 部分,但由于我使用 root 来“ssh”我的 Ubuntu 系统,所以我经常必须这样做。

然后当你通过 ssh 进入 Ubuntu 时输入

echo $DISPLAY

你会看到类似下面的内容

localhost:10.0

如果您已完成所有其他操作(例如转发等),则上述内容将起作用。

同样,如果您想在 Ubuntu 中使用 root 并且“echo $DISPLAY”没有产生任何响应,请尝试以下操作(假设您处于 root 提示符下)。

cp /home/user name/.Xauthority /root/.Xauthority

现在尝试

echo $DISPLAY

再次,你会看到类似下面的内容

localhost:10.0

为了好玩尝试一下

xeyes

它适用于我的情况。希望这对您有所帮助,并且能够解决像上面这样的问题,或者像我这样的问题,有人遇到过,并且像我一样在这个问题上花了几个小时,同时挠头并试图拔掉头发:-))。

答案4

在尝试了很多不同的选择之后,这对我有用:

在我的 Mac 上:

我首先启动 xQuartz。然后我进入终端并运行export DISPLAY=localhost:0.

在我的远程 Linux PC 上:

我遇到了 Wayland 问题,所以我去了/etc/gdm/custom.conf并取消注释该行WaylandEnable=false。我也定了export XAUTHORITY=$HOME/.Xauthority。最后,我设置了export QT_QPA_PLATFORM=xcb一些图形库是 python 工作的原因。

设置完成后,您现在可以使用 ssh 进入远程服务器ssh -Y remoteserver@IP,希望这应该可以工作。

相关内容