【问题标题】:How to do X11 forwarding to a virtual machine running on a remote linux host?如何将 X11 转发到运行在远程 linux 主机上的虚拟机?
【发布时间】:2016-07-15 17:48:30
【问题描述】:

我正在远程 linux 主机上运行虚拟机:

我的机器 -> linux 主机 -> 在 linux 主机上运行的虚拟机

我在 linux 主机和虚拟机上启用了 X11 转发。我正在尝试在我自己的机器上使用 ssh 命令(使用 ssh -X)启动的虚拟机上运行 JVisualVM。

我使用的 ssh 命令是:

ssh -X -t root@linux_host -L 29998:localhost:29999 ssh -X -t -i /root/.ssh/my_key user@virtual_machine -L 29999:localhost:9999

连接后,我将显示变量设置为:

DISPLAY=<my machine's ip address>:0.0

然后我用这个运行 JVisualVM,期望窗口在我自己的机器上打开:

/usr/java/jdk1.7.0_95/bin/jvisualvm -cp:a /opt/jboss/bin/client/jboss-cli-client.jar --jdkhome /usr/java/jdk1.7.0_95/

但是我得到一个显示未设置的错误,或者 JVisual 在几秒钟后退出,错误代码为 2。

【问题讨论】:

  • SuperUser.com 是解决这个问题的更好地方。

标签: linux ssh virtual-machine jvisualvm x11-forwarding


【解决方案1】:

由于您使用的是ssh -X,因此您显然希望通过 ssh 使用安全 X 转发。在这种情况下,ssh 应该为您设置 DISPLAY 变量,并且您不应该通过手动设置 DISPLAY 来覆盖它。如果 ssh 没有设置 DISPLAY,这意味着您的 ssh 服务器设置禁用了 X 转发(无论出于何种原因),您应该尽可能修复它。

如果您不想(或不能)使用 ssh X 转发,您可以使用直接连接(通过设置DISPLAY),但您还需要打开您机器上的 X 服务器以进行远程连接。您可以在本地计算机上使用 xhost 执行此操作:

xhost <linux host address>

但是请注意,这会向每个可以访问该 linux 主机或可以欺骗该主机地址的人打开您的本地计算机(这意味着基本上每个地方的每个人,除非您和 linux 计算机在防火墙内),所以这个不是一个好主意。

【讨论】:

    【解决方案2】:

    尝试添加

    X11UseLocalHost 否

    /etc/ssh/sshd_config

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-11-18
      • 2021-02-17
      • 1970-01-01
      • 1970-01-01
      • 2020-07-17
      • 2011-07-07
      • 1970-01-01
      相关资源
      最近更新 更多