我在远程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。
答案 0 :(得分:1)
由于您正在使用ssh -X
,因此您显然希望使用ssh进行安全X转发。在这种情况下,ssh可以为您设置DISPLAY
变量,您不应通过手动设置DISPLAY
来覆盖它。如果ssh没有设置DISPLAY
,这意味着您的ssh服务器设置已禁用X转发(无论出于何种原因),如果可能的话,您应该修复它。
如果您不想(或不能)使用ssh X转发,您可以使用直接连接(通过设置DISPLAY
正如您所做的那样),但是您还需要打开计算机上的X服务器以进行远程连接。您可以在本地计算机上使用xhost
执行此操作:
xhost <linux host address>
但是请注意,这会打开你的本地机器到每个人都可以访问那个linux主机,或者谁可以欺骗那个主机地址(这意味着基本上每个人都在,除非你和linux机器都在防火墙内),所以这个是不一个好主意。
答案 1 :(得分:0)
尝试添加
X11UseLocalHost no
到
的/ etc / SSH / sshd_config中